From fdbf96b189c8ec07b24de3813aa3c287f22cbc24 Mon Sep 17 00:00:00 2001 From: Michele Rastelli Date: Tue, 22 Jul 2025 15:10:20 +0200 Subject: [PATCH 1/4] added SSL configuration properties --- core/src/main/java/com/arangodb/ArangoDB.java | 57 ++++++++++++++++++ .../config/ArangoConfigProperties.java | 25 ++++++++ .../com/arangodb/internal/ArangoDefaults.java | 3 + .../internal/config/ArangoConfig.java | 60 +++++++++++++++++++ .../config/ArangoConfigPropertiesImpl.java | 25 ++++++++ .../com/arangodb/http/HttpConnection.java | 13 +--- .../java/com/arangodb/ArangoSslTest.java | 31 ++++++++++ .../java/com/arangodb/ArangoConfigTest.java | 8 ++- .../test/resources/arangodb-ssl.properties | 9 +++ .../test/java/mp/ConfigMPDefaultsTest.java | 5 ++ .../src/test/java/mp/ConfigMPTest.java | 10 ++++ .../resources/arangodb-config-test.properties | 5 ++ .../arangodb/vst/internal/VstConnection.java | 7 +-- 13 files changed, 238 insertions(+), 20 deletions(-) create mode 100644 test-functional/src/test/resources/arangodb-ssl.properties diff --git a/core/src/main/java/com/arangodb/ArangoDB.java b/core/src/main/java/com/arangodb/ArangoDB.java index 7ebdb2e7e..c2829e53f 100644 --- a/core/src/main/java/com/arangodb/ArangoDB.java +++ b/core/src/main/java/com/arangodb/ArangoDB.java @@ -356,6 +356,7 @@ public interface ArangoDB extends ArangoSerdeAccessor { /** * Reset the server log levels * Revert the server's log level settings to the values they had at startup, as determined by the startup options specified on the command-line, a configuration file, and the factory defaults. + * * @since ArangoDB 3.12 */ LogLevelEntity resetLogLevels(LogLevelOptions options); @@ -484,6 +485,61 @@ public Builder useSsl(final Boolean useSsl) { return this; } + /** + * Sets the SSL certificate value as Base64 encoded String + * + * @param sslCertValue the SSL certificate value as Base64 encoded String + * @return {@link ArangoDB.Builder} + */ + public Builder sslCertValue(final String sslCertValue) { + config.setSslCertValue(sslCertValue); + return this; + } + + /** + * Sets the SSL certificate type, default: {@code X.509} + * + * @param sslCertType the SSL certificate type + * @return {@link ArangoDB.Builder} + */ + public Builder sslCertType(final String sslCertType) { + config.setSslCertType(sslCertType); + return this; + } + + /** + * Sets the SSL Trust manager algorithm + * + * @param sslAlgorithm the name of the SSL Trust manager algorithm + * @return {@link ArangoDB.Builder} + */ + public Builder sslAlgorithm(final String sslAlgorithm) { + config.setSslAlgorithm(sslAlgorithm); + return this; + } + + /** + * Sets the SSL keystore type + * + * @param sslKeystoreType the SSL keystore type + * @return {@link ArangoDB.Builder} + */ + public Builder sslKeystoreType(final String sslKeystoreType) { + config.setSslKeystoreType(sslKeystoreType); + return this; + } + + /** + * Sets the SSLContext protocol, default: {@code TLS} + * + * @param sslProtocol the name of the SSLContext protocol + * @return {@link ArangoDB.Builder} + */ + public Builder sslProtocol(final String sslProtocol) { + config.setSslProtocol(sslProtocol); + return this; + } + /** * Sets the SSL context to be used when {@code true} is passed through {@link #useSsl(Boolean)}. * @@ -716,6 +772,7 @@ public Builder compressionLevel(Integer level) { /** * Configuration specific for {@link com.arangodb.internal.net.ProtocolProvider}. + * * @return {@link ArangoDB.Builder} */ public Builder protocolConfig(ProtocolConfig protocolConfig) { diff --git a/core/src/main/java/com/arangodb/config/ArangoConfigProperties.java b/core/src/main/java/com/arangodb/config/ArangoConfigProperties.java index 832c8862d..d79d66d82 100644 --- a/core/src/main/java/com/arangodb/config/ArangoConfigProperties.java +++ b/core/src/main/java/com/arangodb/config/ArangoConfigProperties.java @@ -19,6 +19,11 @@ public interface ArangoConfigProperties { String KEY_JWT = "jwt"; String KEY_TIMEOUT = "timeout"; String KEY_USE_SSL = "useSsl"; + String KEY_SSL_CERT_VALUE = "sslCertValue"; + String KEY_SSL_CERT_TYPE = "sslCertType"; + String KEY_SSL_ALGORITHM = "sslAlgorithm"; + String KEY_SSL_KEYSTORE_TYPE = "sslKeystoreType"; + String KEY_SSL_PROTOCOL = "sslProtocol"; String KEY_VERIFY_HOST = "verifyHost"; String KEY_CHUNK_SIZE = "chunkSize"; String KEY_PIPELINING = "pipelining"; @@ -103,6 +108,26 @@ default Optional getUseSsl() { return Optional.empty(); } + default Optional getSslCertValue() { + return Optional.empty(); + } + + default Optional getSslCertType() { + return Optional.empty(); + } + + default Optional getSslAlgorithm() { + return Optional.empty(); + } + + default Optional getSslKeystoreType() { + return Optional.empty(); + } + + default Optional getSslProtocol() { + return Optional.empty(); + } + default Optional getVerifyHost() { return Optional.empty(); } diff --git a/core/src/main/java/com/arangodb/internal/ArangoDefaults.java b/core/src/main/java/com/arangodb/internal/ArangoDefaults.java index 25448187c..95e6dd2cb 100644 --- a/core/src/main/java/com/arangodb/internal/ArangoDefaults.java +++ b/core/src/main/java/com/arangodb/internal/ArangoDefaults.java @@ -48,6 +48,9 @@ public final class ArangoDefaults { public static final Integer DEFAULT_TIMEOUT = 0; public static final Long DEFAULT_CONNECTION_TTL_HTTP = 30_000L; public static final Boolean DEFAULT_USE_SSL = false; + public static final String DEFAULT_SSL_CERT_TYPE = "X.509"; + public static final String DEFAULT_SSL_CERT_ALIAS = "arangodb"; + public static final String DEFAULT_SSL_PROTOCOL = "TLS"; public static final Boolean DEFAULT_VERIFY_HOST = true; public static final Integer DEFAULT_CHUNK_SIZE = 30_000; public static final Boolean DEFAULT_PIPELINING = false; diff --git a/core/src/main/java/com/arangodb/internal/config/ArangoConfig.java b/core/src/main/java/com/arangodb/internal/config/ArangoConfig.java index f95e0a4e2..ae8bcb5d1 100644 --- a/core/src/main/java/com/arangodb/internal/config/ArangoConfig.java +++ b/core/src/main/java/com/arangodb/internal/config/ArangoConfig.java @@ -16,7 +16,12 @@ import com.fasterxml.jackson.databind.Module; import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManagerFactory; +import java.io.ByteArrayInputStream; import java.lang.reflect.InvocationTargetException; +import java.security.KeyStore; +import java.security.cert.Certificate; +import java.security.cert.CertificateFactory; import java.util.*; import java.util.concurrent.Executor; import java.util.stream.Collectors; @@ -30,6 +35,11 @@ public class ArangoConfig { private String password; private String jwt; private Boolean useSsl; + private Optional sslCertValue; + private String sslCertType; + private Optional sslAlgorithm; + private Optional sslKeystoreType; + private String sslProtocol; private SSLContext sslContext; private Boolean verifyHost; private Integer chunkSize; @@ -69,6 +79,11 @@ public void loadProperties(final ArangoConfigProperties properties) { // FIXME: make jwt field Optional jwt = properties.getJwt().orElse(null); useSsl = properties.getUseSsl().orElse(ArangoDefaults.DEFAULT_USE_SSL); + sslCertValue = properties.getSslCertValue(); + sslCertType = properties.getSslCertType().orElse(ArangoDefaults.DEFAULT_SSL_CERT_TYPE); + sslAlgorithm = properties.getSslAlgorithm(); + sslKeystoreType = properties.getSslKeystoreType(); + sslProtocol = properties.getSslProtocol().orElse(ArangoDefaults.DEFAULT_SSL_PROTOCOL); verifyHost = properties.getVerifyHost().orElse(ArangoDefaults.DEFAULT_VERIFY_HOST); chunkSize = properties.getChunkSize().orElse(ArangoDefaults.DEFAULT_CHUNK_SIZE); pipelining = properties.getPipelining().orElse(ArangoDefaults.DEFAULT_PIPELINING); @@ -151,7 +166,30 @@ public void setUseSsl(Boolean useSsl) { this.useSsl = useSsl; } + public void setSslCertValue(String sslCertValue) { + this.sslCertValue = Optional.ofNullable(sslCertValue); + } + + public void setSslCertType(String sslCertType) { + this.sslCertType = sslCertType; + } + + public void setSslAlgorithm(String sslAlgorithm) { + this.sslAlgorithm = Optional.ofNullable(sslAlgorithm); + } + + public void setSslKeystoreType(String sslKeystoreType) { + this.sslKeystoreType = Optional.ofNullable(sslKeystoreType); + } + + public void setSslProtocol(String sslProtocol) { + this.sslProtocol = sslProtocol; + } + public SSLContext getSslContext() { + if (sslContext == null) { + sslContext = createSslContext(); + } return sslContext; } @@ -342,4 +380,26 @@ public ProtocolConfig getProtocolConfig() { public void setProtocolConfig(ProtocolConfig protocolConfig) { this.protocolConfig = protocolConfig; } + + private SSLContext createSslContext() { + try { + if (sslCertValue.isPresent()) { + ByteArrayInputStream is = new ByteArrayInputStream(Base64.getDecoder().decode(sslCertValue.get())); + Certificate cert = CertificateFactory.getInstance(sslCertType).generateCertificate(is); + KeyStore ks = KeyStore.getInstance(sslKeystoreType.orElseGet(KeyStore::getDefaultType)); + ks.load(null); + ks.setCertificateEntry("arangodb", cert); + TrustManagerFactory tmf = TrustManagerFactory.getInstance(sslAlgorithm.orElseGet(TrustManagerFactory::getDefaultAlgorithm)); + tmf.init(ks); + SSLContext sc = SSLContext.getInstance(sslProtocol); + sc.init(null, tmf.getTrustManagers(), null); + return sc; + } else { + return SSLContext.getDefault(); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } diff --git a/core/src/main/java/com/arangodb/internal/config/ArangoConfigPropertiesImpl.java b/core/src/main/java/com/arangodb/internal/config/ArangoConfigPropertiesImpl.java index f7d865f81..da2c56553 100644 --- a/core/src/main/java/com/arangodb/internal/config/ArangoConfigPropertiesImpl.java +++ b/core/src/main/java/com/arangodb/internal/config/ArangoConfigPropertiesImpl.java @@ -109,6 +109,31 @@ public Optional getUseSsl() { return Optional.ofNullable(getProperty(KEY_USE_SSL)).map(Boolean::valueOf); } + @Override + public Optional getSslCertValue() { + return Optional.ofNullable(getProperty(KEY_SSL_CERT_VALUE)); + } + + @Override + public Optional getSslCertType() { + return Optional.ofNullable(getProperty(KEY_SSL_CERT_TYPE)); + } + + @Override + public Optional getSslAlgorithm() { + return Optional.ofNullable(getProperty(KEY_SSL_ALGORITHM)); + } + + @Override + public Optional getSslKeystoreType() { + return Optional.ofNullable(getProperty(KEY_SSL_KEYSTORE_TYPE)); + } + + @Override + public Optional getSslProtocol() { + return Optional.ofNullable(getProperty(KEY_SSL_PROTOCOL)); + } + @Override public Optional getVerifyHost() { return Optional.ofNullable(getProperty(KEY_VERIFY_HOST)).map(Boolean::valueOf); diff --git a/http-protocol/src/main/java/com/arangodb/http/HttpConnection.java b/http-protocol/src/main/java/com/arangodb/http/HttpConnection.java index d777f0e3f..f75c3639b 100644 --- a/http-protocol/src/main/java/com/arangodb/http/HttpConnection.java +++ b/http-protocol/src/main/java/com/arangodb/http/HttpConnection.java @@ -55,7 +55,6 @@ import org.slf4j.LoggerFactory; import javax.net.ssl.SSLContext; -import java.security.NoSuchAlgorithmException; import java.util.Collections; import java.util.Iterator; import java.util.Map.Entry; @@ -169,17 +168,7 @@ private static String getUserAgent() { } if (Boolean.TRUE.equals(config.getUseSsl())) { - SSLContext ctx; - if (config.getSslContext() != null) { - ctx = config.getSslContext(); - } else { - try { - ctx = SSLContext.getDefault(); - } catch (NoSuchAlgorithmException e) { - throw ArangoDBException.of(e); - } - } - + SSLContext ctx = config.getSslContext(); webClientOptions .setSsl(true) .setUseAlpn(true) diff --git a/test-functional/src/test-ssl/java/com/arangodb/ArangoSslTest.java b/test-functional/src/test-ssl/java/com/arangodb/ArangoSslTest.java index 092276a81..550e474e2 100644 --- a/test-functional/src/test-ssl/java/com/arangodb/ArangoSslTest.java +++ b/test-functional/src/test-ssl/java/com/arangodb/ArangoSslTest.java @@ -20,6 +20,7 @@ package com.arangodb; +import com.arangodb.config.ArangoConfigProperties; import com.arangodb.entity.ArangoDBVersion; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.EnumSource; @@ -55,6 +56,36 @@ void connect(Protocol protocol) { assertThat(version).isNotNull(); } + @ParameterizedTest + @EnumSource(Protocol.class) + void connectWithProperties(Protocol protocol) { + assumeTrue(protocol != Protocol.VST); + + final ArangoDB arangoDB = new ArangoDB.Builder() + .protocol(protocol) + .host("172.28.0.1", 8529) + .password("test") + .useSsl(true) + .sslCertValue("MIIDezCCAmOgAwIBAgIEeDCzXzANBgkqhkiG9w0BAQsFADBuMRAwDgYDVQQGEwdVbmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYDVQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRIwEAYDVQQDEwlsb2NhbGhvc3QwHhcNMjAxMTAxMTg1MTE5WhcNMzAxMDMwMTg1MTE5WjBuMRAwDgYDVQQGEwdVbmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYDVQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRIwEAYDVQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1WiDnd4+uCmMG539ZNZB8NwI0RZF3sUSQGPx3lkqaFTZVEzMZL76HYvdc9Qg7difyKyQ09RLSpMALX9euSseD7bZGnfQH52BnKcT09eQ3wh7aVQ5sN2omygdHLC7X9usntxAfv7NzmvdogNXoJQyY/hSZff7RIqWH8NnAUKkjqOe6Bf5LDbxHKESmrFBxOCOnhcpvZWetwpiRdJVPwUn5P82CAZzfiBfmBZnB7D0l+/6Cv4jMuH26uAIcixnVekBQzl1RgwczuiZf2MGO64vDMMJJWE9ClZF1uQuQrwXF6qwhuP1Hnkii6wNbTtPWlGSkqeutr004+Hzbf8KnRY4PAgMBAAGjITAfMB0GA1UdDgQWBBTBrv9Awynt3C5IbaCNyOW5v4DNkTANBgkqhkiG9w0BAQsFAAOCAQEAIm9rPvDkYpmzpSIhR3VXG9Y71gxRDrqkEeLsMoEyqGnw/zx1bDCNeGg2PncLlW6zTIipEBooixIE9U7KxHgZxBy0Et6EEWvIUmnr6F4F+dbTD050GHlcZ7eOeqYTPYeQC502G1Fo4tdNi4lDP9L9XZpf7Q1QimRH2qaLS03ZFZa2tY7ah/RQqZL8Dkxx8/zc25sgTHVpxoK853glBVBs/ENMiyGJWmAXQayewY3EPt/9wGwV4KmU3dPDleQeXSUGPUISeQxFjy+jCw21pYviWVJTNBA9l5ny3GhEmcnOT/gQHCvVRLyGLMbaMZ4JrPwb+aAtBgrgeiK4xeSMMvrbhw==") + .verifyHost(false) + .build(); + final ArangoDBVersion version = arangoDB.getVersion(); + assertThat(version).isNotNull(); + } + + @ParameterizedTest + @EnumSource(Protocol.class) + void connectWithFileProperties(Protocol protocol) { + assumeTrue(protocol != Protocol.VST); + + final ArangoDB arangoDB = new ArangoDB.Builder() + .loadProperties(ArangoConfigProperties.fromFile("arangodb-ssl.properties")) + .protocol(protocol) + .build(); + final ArangoDBVersion version = arangoDB.getVersion(); + assertThat(version).isNotNull(); + } + @ParameterizedTest @EnumSource(Protocol.class) void connectWithoutValidSslContext(Protocol protocol) { diff --git a/test-functional/src/test/java/com/arangodb/ArangoConfigTest.java b/test-functional/src/test/java/com/arangodb/ArangoConfigTest.java index 2e00339a0..c017ef718 100644 --- a/test-functional/src/test/java/com/arangodb/ArangoConfigTest.java +++ b/test-functional/src/test/java/com/arangodb/ArangoConfigTest.java @@ -5,11 +5,15 @@ import com.arangodb.internal.config.ArangoConfig; import org.junit.jupiter.api.Test; +import javax.net.ssl.SSLContext; + +import java.security.NoSuchAlgorithmException; + import static org.assertj.core.api.Assertions.assertThat; public class ArangoConfigTest { @Test - void ArangoConfigDefaultValues() { + void ArangoConfigDefaultValues() throws NoSuchAlgorithmException { ArangoConfig cfg = new ArangoConfig(); assertThat(cfg.getHosts()).isEqualTo(ArangoDefaults.DEFAULT_HOSTS); assertThat(cfg.getProtocol()).isEqualTo(Protocol.HTTP2_JSON); @@ -18,7 +22,7 @@ void ArangoConfigDefaultValues() { assertThat(cfg.getPassword()).isNull(); assertThat(cfg.getJwt()).isNull(); assertThat(cfg.getUseSsl()).isEqualTo(ArangoDefaults.DEFAULT_USE_SSL); - assertThat(cfg.getSslContext()).isNull(); + assertThat(cfg.getSslContext()).isEqualTo(SSLContext.getDefault()); assertThat(cfg.getVerifyHost()).isEqualTo(ArangoDefaults.DEFAULT_VERIFY_HOST); assertThat(cfg.getChunkSize()).isEqualTo(ArangoDefaults.DEFAULT_CHUNK_SIZE); assertThat(cfg.getMaxConnections()).isEqualTo(ArangoDefaults.MAX_CONNECTIONS_HTTP2_DEFAULT); diff --git a/test-functional/src/test/resources/arangodb-ssl.properties b/test-functional/src/test/resources/arangodb-ssl.properties new file mode 100644 index 000000000..9078190d9 --- /dev/null +++ b/test-functional/src/test/resources/arangodb-ssl.properties @@ -0,0 +1,9 @@ +arangodb.hosts=172.28.0.1:8529 +arangodb.password=test +arangodb.useSsl=true +arangodb.sslCertValue=MIIDezCCAmOgAwIBAgIEeDCzXzANBgkqhkiG9w0BAQsFADBuMRAwDgYDVQQGEwdVbmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYDVQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRIwEAYDVQQDEwlsb2NhbGhvc3QwHhcNMjAxMTAxMTg1MTE5WhcNMzAxMDMwMTg1MTE5WjBuMRAwDgYDVQQGEwdVbmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYDVQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRIwEAYDVQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1WiDnd4+uCmMG539ZNZB8NwI0RZF3sUSQGPx3lkqaFTZVEzMZL76HYvdc9Qg7difyKyQ09RLSpMALX9euSseD7bZGnfQH52BnKcT09eQ3wh7aVQ5sN2omygdHLC7X9usntxAfv7NzmvdogNXoJQyY/hSZff7RIqWH8NnAUKkjqOe6Bf5LDbxHKESmrFBxOCOnhcpvZWetwpiRdJVPwUn5P82CAZzfiBfmBZnB7D0l+/6Cv4jMuH26uAIcixnVekBQzl1RgwczuiZf2MGO64vDMMJJWE9ClZF1uQuQrwXF6qwhuP1Hnkii6wNbTtPWlGSkqeutr004+Hzbf8KnRY4PAgMBAAGjITAfMB0GA1UdDgQWBBTBrv9Awynt3C5IbaCNyOW5v4DNkTANBgkqhkiG9w0BAQsFAAOCAQEAIm9rPvDkYpmzpSIhR3VXG9Y71gxRDrqkEeLsMoEyqGnw/zx1bDCNeGg2PncLlW6zTIipEBooixIE9U7KxHgZxBy0Et6EEWvIUmnr6F4F+dbTD050GHlcZ7eOeqYTPYeQC502G1Fo4tdNi4lDP9L9XZpf7Q1QimRH2qaLS03ZFZa2tY7ah/RQqZL8Dkxx8/zc25sgTHVpxoK853glBVBs/ENMiyGJWmAXQayewY3EPt/9wGwV4KmU3dPDleQeXSUGPUISeQxFjy+jCw21pYviWVJTNBA9l5ny3GhEmcnOT/gQHCvVRLyGLMbaMZ4JrPwb+aAtBgrgeiK4xeSMMvrbhw== +arangodb.sslCertType=X.509 +arangodb.sslAlgorithm=SunX509 +arangodb.sslKeystoreType=jks +arangodb.sslProtocol=TLS +arangodb.verifyHost=false diff --git a/test-non-functional/src/test/java/mp/ConfigMPDefaultsTest.java b/test-non-functional/src/test/java/mp/ConfigMPDefaultsTest.java index 5a8f861ef..fbdec222c 100644 --- a/test-non-functional/src/test/java/mp/ConfigMPDefaultsTest.java +++ b/test-non-functional/src/test/java/mp/ConfigMPDefaultsTest.java @@ -23,6 +23,11 @@ private void checkResult(ArangoConfigProperties config) { assertThat(config.getJwt()).isNotPresent(); assertThat(config.getTimeout()).isEmpty(); assertThat(config.getUseSsl()).isEmpty(); + assertThat(config.getSslCertValue()).isEmpty(); + assertThat(config.getSslCertType()).isEmpty(); + assertThat(config.getSslAlgorithm()).isEmpty(); + assertThat(config.getSslKeystoreType()).isEmpty(); + assertThat(config.getSslProtocol()).isEmpty(); assertThat(config.getVerifyHost()).isEmpty(); assertThat(config.getChunkSize()).isEmpty(); assertThat(config.getPipelining()).isEmpty(); diff --git a/test-non-functional/src/test/java/mp/ConfigMPTest.java b/test-non-functional/src/test/java/mp/ConfigMPTest.java index 5d5f605e3..b87a813b7 100644 --- a/test-non-functional/src/test/java/mp/ConfigMPTest.java +++ b/test-non-functional/src/test/java/mp/ConfigMPTest.java @@ -21,6 +21,11 @@ class ConfigMPTest { private final String jwt = "testJwt"; private final Integer timeout = 9876; private final Boolean useSsl = true; + private final String sslCertValue = "sslCertValue"; + private final String sslCertType = "sslCertType"; + private final String sslAlgorithm = "sslAlgorithm"; + private final String sslKeystoreType = "sslKeystoreType"; + private final String sslProtocol = "sslProtocol"; private final Boolean verifyHost = false; private final Integer vstChunkSize = 1234; private final Boolean pipelining = true; @@ -57,6 +62,11 @@ private void checkResult(ArangoConfigProperties config) { .hasValue(jwt); assertThat(config.getTimeout()).hasValue(timeout); assertThat(config.getUseSsl()).hasValue(useSsl); + assertThat(config.getSslCertValue()).hasValue(sslCertValue); + assertThat(config.getSslCertType()).hasValue(sslCertType); + assertThat(config.getSslAlgorithm()).hasValue(sslAlgorithm); + assertThat(config.getSslKeystoreType()).hasValue(sslKeystoreType); + assertThat(config.getSslProtocol()).hasValue(sslProtocol); assertThat(config.getVerifyHost()).hasValue(verifyHost); assertThat(config.getChunkSize()).hasValue(vstChunkSize); assertThat(config.getPipelining()).hasValue(pipelining); diff --git a/test-non-functional/src/test/resources/arangodb-config-test.properties b/test-non-functional/src/test/resources/arangodb-config-test.properties index 1d5e675af..b2f9dc1f7 100644 --- a/test-non-functional/src/test/resources/arangodb-config-test.properties +++ b/test-non-functional/src/test/resources/arangodb-config-test.properties @@ -5,6 +5,11 @@ adb.password=testPassword adb.jwt=testJwt adb.timeout=9876 adb.useSsl=true +adb.sslCertValue=sslCertValue +adb.sslCertType=sslCertType +adb.sslAlgorithm=sslAlgorithm +adb.sslKeystoreType=sslKeystoreType +adb.sslProtocol=sslProtocol adb.verifyHost=false adb.chunkSize=1234 adb.pipelining=true diff --git a/vst-protocol/src/main/java/com/arangodb/vst/internal/VstConnection.java b/vst-protocol/src/main/java/com/arangodb/vst/internal/VstConnection.java index 8b4cdc211..870051fa6 100644 --- a/vst-protocol/src/main/java/com/arangodb/vst/internal/VstConnection.java +++ b/vst-protocol/src/main/java/com/arangodb/vst/internal/VstConnection.java @@ -35,7 +35,6 @@ import javax.net.SocketFactory; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocket; -import javax.net.ssl.SSLSocketFactory; import java.io.BufferedOutputStream; import java.io.IOException; import java.io.InputStream; @@ -150,11 +149,7 @@ public synchronized void open() throws IOException { LOGGER.debug(String.format("[%s]: Open connection to %s", connectionName, host)); } if (Boolean.TRUE.equals(useSsl)) { - if (sslContext != null) { - socket = sslContext.getSocketFactory().createSocket(); - } else { - socket = SSLSocketFactory.getDefault().createSocket(); - } + socket = sslContext.getSocketFactory().createSocket(); } else { socket = SocketFactory.getDefault().createSocket(); } From 748f8425033c7a0cba1c6c2915a8a8ad257d9318 Mon Sep 17 00:00:00 2001 From: Michele Rastelli Date: Tue, 22 Jul 2025 15:43:18 +0200 Subject: [PATCH 2/4] fix tests --- .../native-image/resource-config.json | 3 ++ .../java/mp/ArangoConfigPropertiesMPImpl.java | 30 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/test-functional/src/test/resources/META-INF/native-image/resource-config.json b/test-functional/src/test/resources/META-INF/native-image/resource-config.json index a603a885a..9d96e052d 100644 --- a/test-functional/src/test/resources/META-INF/native-image/resource-config.json +++ b/test-functional/src/test/resources/META-INF/native-image/resource-config.json @@ -4,6 +4,9 @@ { "pattern": "\\Qarangodb.properties\\E" }, + { + "pattern": "\\Qarangodb-ssl.properties\\E" + }, { "pattern": "\\Qarangodb-bad.properties\\E" }, diff --git a/test-non-functional/src/test/java/mp/ArangoConfigPropertiesMPImpl.java b/test-non-functional/src/test/java/mp/ArangoConfigPropertiesMPImpl.java index 4cac7a647..08ed85c44 100644 --- a/test-non-functional/src/test/java/mp/ArangoConfigPropertiesMPImpl.java +++ b/test-non-functional/src/test/java/mp/ArangoConfigPropertiesMPImpl.java @@ -21,6 +21,11 @@ public final class ArangoConfigPropertiesMPImpl implements ArangoConfigPropertie private Optional jwt; private Optional timeout; private Optional useSsl; + private Optional sslCertValue; + private Optional sslCertType; + private Optional sslAlgorithm; + private Optional sslKeystoreType; + private Optional sslProtocol; private Optional verifyHost; private Optional chunkSize; private Optional pipelining; @@ -71,6 +76,31 @@ public Optional getUseSsl() { return useSsl; } + @Override + public Optional getSslCertValue() { + return sslCertValue; + } + + @Override + public Optional getSslCertType() { + return sslCertType; + } + + @Override + public Optional getSslAlgorithm() { + return sslAlgorithm; + } + + @Override + public Optional getSslKeystoreType() { + return sslKeystoreType; + } + + @Override + public Optional getSslProtocol() { + return sslProtocol; + } + @Override public Optional getVerifyHost() { return verifyHost; From 62455ed2e588fd0051314e55775b2733040f747c Mon Sep 17 00:00:00 2001 From: Michele Rastelli Date: Tue, 22 Jul 2025 15:53:35 +0200 Subject: [PATCH 3/4] v7.21.0-SNAPSHOT --- core/pom.xml | 2 +- driver/pom.xml | 2 +- http-protocol/pom.xml | 2 +- jackson-serde-json/pom.xml | 2 +- jackson-serde-vpack/pom.xml | 2 +- jsonb-serde/pom.xml | 2 +- pom.xml | 2 +- release-parent/pom.xml | 2 +- shaded/pom.xml | 2 +- test-functional/pom.xml | 2 +- test-functional/src/test/java/com/arangodb/UserAgentTest.java | 2 +- test-non-functional/pom.xml | 2 +- test-parent/pom.xml | 2 +- test-perf/pom.xml | 2 +- test-resilience/pom.xml | 2 +- tutorial/gradle/build.gradle | 2 +- tutorial/maven/pom.xml | 2 +- vst-protocol/pom.xml | 2 +- 18 files changed, 18 insertions(+), 18 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index 77c2dd875..61185da3f 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -8,7 +8,7 @@ ../release-parent com.arangodb release-parent - 7.20.0 + 7.21.0-SNAPSHOT core diff --git a/driver/pom.xml b/driver/pom.xml index a8a3a7cd3..ca8b33bd0 100644 --- a/driver/pom.xml +++ b/driver/pom.xml @@ -8,7 +8,7 @@ ../release-parent com.arangodb release-parent - 7.20.0 + 7.21.0-SNAPSHOT arangodb-java-driver diff --git a/http-protocol/pom.xml b/http-protocol/pom.xml index 514e99c34..68b797140 100644 --- a/http-protocol/pom.xml +++ b/http-protocol/pom.xml @@ -8,7 +8,7 @@ ../release-parent com.arangodb release-parent - 7.20.0 + 7.21.0-SNAPSHOT http-protocol diff --git a/jackson-serde-json/pom.xml b/jackson-serde-json/pom.xml index 948c175d4..b757b6ba2 100644 --- a/jackson-serde-json/pom.xml +++ b/jackson-serde-json/pom.xml @@ -8,7 +8,7 @@ ../release-parent com.arangodb release-parent - 7.20.0 + 7.21.0-SNAPSHOT jackson-serde-json diff --git a/jackson-serde-vpack/pom.xml b/jackson-serde-vpack/pom.xml index b2d068133..ab2d368ac 100644 --- a/jackson-serde-vpack/pom.xml +++ b/jackson-serde-vpack/pom.xml @@ -8,7 +8,7 @@ ../release-parent com.arangodb release-parent - 7.20.0 + 7.21.0-SNAPSHOT jackson-serde-vpack diff --git a/jsonb-serde/pom.xml b/jsonb-serde/pom.xml index 7027b9d02..85797fc32 100644 --- a/jsonb-serde/pom.xml +++ b/jsonb-serde/pom.xml @@ -8,7 +8,7 @@ ../release-parent com.arangodb release-parent - 7.20.0 + 7.21.0-SNAPSHOT jsonb-serde diff --git a/pom.xml b/pom.xml index a574ba455..85c3dfb7d 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.arangodb arangodb-java-driver-parent - 7.20.0 + 7.21.0-SNAPSHOT 2016 release-parent diff --git a/release-parent/pom.xml b/release-parent/pom.xml index 6a65de066..b05eab4f2 100644 --- a/release-parent/pom.xml +++ b/release-parent/pom.xml @@ -6,7 +6,7 @@ com.arangodb arangodb-java-driver-parent - 7.20.0 + 7.21.0-SNAPSHOT pom diff --git a/shaded/pom.xml b/shaded/pom.xml index a7be647e1..e3808b565 100644 --- a/shaded/pom.xml +++ b/shaded/pom.xml @@ -8,7 +8,7 @@ ../release-parent com.arangodb release-parent - 7.20.0 + 7.21.0-SNAPSHOT arangodb-java-driver-shaded diff --git a/test-functional/pom.xml b/test-functional/pom.xml index d1b319e7d..7f54df83a 100644 --- a/test-functional/pom.xml +++ b/test-functional/pom.xml @@ -8,7 +8,7 @@ ../test-parent com.arangodb test-parent - 7.20.0 + 7.21.0-SNAPSHOT test-functional diff --git a/test-functional/src/test/java/com/arangodb/UserAgentTest.java b/test-functional/src/test/java/com/arangodb/UserAgentTest.java index f8d1008ff..6a7ea2555 100644 --- a/test-functional/src/test/java/com/arangodb/UserAgentTest.java +++ b/test-functional/src/test/java/com/arangodb/UserAgentTest.java @@ -10,7 +10,7 @@ class UserAgentTest extends BaseJunit5 { - private static final String EXPECTED_VERSION = "7.20.0"; + private static final String EXPECTED_VERSION = "7.21.0-SNAPSHOT"; private static final boolean SHADED = Boolean.parseBoolean(System.getProperty("shaded")); diff --git a/test-non-functional/pom.xml b/test-non-functional/pom.xml index cc802d7f8..f78b035a9 100644 --- a/test-non-functional/pom.xml +++ b/test-non-functional/pom.xml @@ -8,7 +8,7 @@ ../test-parent com.arangodb test-parent - 7.20.0 + 7.21.0-SNAPSHOT test-non-functional diff --git a/test-parent/pom.xml b/test-parent/pom.xml index c17fcb594..87e93ea8a 100644 --- a/test-parent/pom.xml +++ b/test-parent/pom.xml @@ -7,7 +7,7 @@ com.arangodb arangodb-java-driver-parent - 7.20.0 + 7.21.0-SNAPSHOT pom diff --git a/test-perf/pom.xml b/test-perf/pom.xml index e834ea725..dbb055779 100644 --- a/test-perf/pom.xml +++ b/test-perf/pom.xml @@ -7,7 +7,7 @@ ../test-parent com.arangodb test-parent - 7.20.0 + 7.21.0-SNAPSHOT test-perf diff --git a/test-resilience/pom.xml b/test-resilience/pom.xml index ae662bb32..df922ca99 100644 --- a/test-resilience/pom.xml +++ b/test-resilience/pom.xml @@ -6,7 +6,7 @@ ../test-parent com.arangodb test-parent - 7.20.0 + 7.21.0-SNAPSHOT 4.0.0 diff --git a/tutorial/gradle/build.gradle b/tutorial/gradle/build.gradle index 0047761d2..fb20f878d 100644 --- a/tutorial/gradle/build.gradle +++ b/tutorial/gradle/build.gradle @@ -12,7 +12,7 @@ repositories { } dependencies { - implementation 'com.arangodb:arangodb-java-driver:7.20.0' + implementation 'com.arangodb:arangodb-java-driver:7.21.0-SNAPSHOT' } ext { diff --git a/tutorial/maven/pom.xml b/tutorial/maven/pom.xml index a40773634..481baaa1c 100644 --- a/tutorial/maven/pom.xml +++ b/tutorial/maven/pom.xml @@ -19,7 +19,7 @@ com.arangodb arangodb-java-driver - 7.20.0 + 7.21.0-SNAPSHOT diff --git a/vst-protocol/pom.xml b/vst-protocol/pom.xml index 262352ba2..e49eced8d 100644 --- a/vst-protocol/pom.xml +++ b/vst-protocol/pom.xml @@ -8,7 +8,7 @@ ../release-parent com.arangodb release-parent - 7.20.0 + 7.21.0-SNAPSHOT vst-protocol From 46be536ee703dfd7968b3206f878563590f162f1 Mon Sep 17 00:00:00 2001 From: Michele Rastelli Date: Wed, 23 Jul 2025 10:01:26 +0200 Subject: [PATCH 4/4] simplified configuration --- core/src/main/java/com/arangodb/ArangoDB.java | 22 ------------------- .../config/ArangoConfigProperties.java | 10 --------- .../com/arangodb/internal/ArangoDefaults.java | 2 -- .../internal/config/ArangoConfig.java | 16 ++------------ .../config/ArangoConfigPropertiesImpl.java | 10 --------- .../java/com/arangodb/ArangoSslTest.java | 2 +- .../test/resources/arangodb-ssl.properties | 2 -- .../java/mp/ArangoConfigPropertiesMPImpl.java | 12 ---------- .../test/java/mp/ConfigMPDefaultsTest.java | 2 -- .../src/test/java/mp/ConfigMPTest.java | 4 ---- .../resources/arangodb-config-test.properties | 2 -- 11 files changed, 3 insertions(+), 81 deletions(-) diff --git a/core/src/main/java/com/arangodb/ArangoDB.java b/core/src/main/java/com/arangodb/ArangoDB.java index c2829e53f..56efa4758 100644 --- a/core/src/main/java/com/arangodb/ArangoDB.java +++ b/core/src/main/java/com/arangodb/ArangoDB.java @@ -496,17 +496,6 @@ public Builder sslCertValue(final String sslCertValue) { return this; } - /** - * Sets the SSL certificate type, default: {@code X.509} - * - * @param sslCertType the SSL certificate type - * @return {@link ArangoDB.Builder} - */ - public Builder sslCertType(final String sslCertType) { - config.setSslCertType(sslCertType); - return this; - } - /** * Sets the SSL Trust manager algorithm * @@ -518,17 +507,6 @@ public Builder sslAlgorithm(final String sslAlgorithm) { return this; } - /** - * Sets the SSL keystore type - * - * @param sslKeystoreType the SSL keystore type - * @return {@link ArangoDB.Builder} - */ - public Builder sslKeystoreType(final String sslKeystoreType) { - config.setSslKeystoreType(sslKeystoreType); - return this; - } - /** * Sets the SSLContext protocol, default: {@code TLS} * diff --git a/core/src/main/java/com/arangodb/config/ArangoConfigProperties.java b/core/src/main/java/com/arangodb/config/ArangoConfigProperties.java index d79d66d82..ee961acf1 100644 --- a/core/src/main/java/com/arangodb/config/ArangoConfigProperties.java +++ b/core/src/main/java/com/arangodb/config/ArangoConfigProperties.java @@ -20,9 +20,7 @@ public interface ArangoConfigProperties { String KEY_TIMEOUT = "timeout"; String KEY_USE_SSL = "useSsl"; String KEY_SSL_CERT_VALUE = "sslCertValue"; - String KEY_SSL_CERT_TYPE = "sslCertType"; String KEY_SSL_ALGORITHM = "sslAlgorithm"; - String KEY_SSL_KEYSTORE_TYPE = "sslKeystoreType"; String KEY_SSL_PROTOCOL = "sslProtocol"; String KEY_VERIFY_HOST = "verifyHost"; String KEY_CHUNK_SIZE = "chunkSize"; @@ -112,18 +110,10 @@ default Optional getSslCertValue() { return Optional.empty(); } - default Optional getSslCertType() { - return Optional.empty(); - } - default Optional getSslAlgorithm() { return Optional.empty(); } - default Optional getSslKeystoreType() { - return Optional.empty(); - } - default Optional getSslProtocol() { return Optional.empty(); } diff --git a/core/src/main/java/com/arangodb/internal/ArangoDefaults.java b/core/src/main/java/com/arangodb/internal/ArangoDefaults.java index 95e6dd2cb..2f68fd53e 100644 --- a/core/src/main/java/com/arangodb/internal/ArangoDefaults.java +++ b/core/src/main/java/com/arangodb/internal/ArangoDefaults.java @@ -48,8 +48,6 @@ public final class ArangoDefaults { public static final Integer DEFAULT_TIMEOUT = 0; public static final Long DEFAULT_CONNECTION_TTL_HTTP = 30_000L; public static final Boolean DEFAULT_USE_SSL = false; - public static final String DEFAULT_SSL_CERT_TYPE = "X.509"; - public static final String DEFAULT_SSL_CERT_ALIAS = "arangodb"; public static final String DEFAULT_SSL_PROTOCOL = "TLS"; public static final Boolean DEFAULT_VERIFY_HOST = true; public static final Integer DEFAULT_CHUNK_SIZE = 30_000; diff --git a/core/src/main/java/com/arangodb/internal/config/ArangoConfig.java b/core/src/main/java/com/arangodb/internal/config/ArangoConfig.java index ae8bcb5d1..a13d41cdb 100644 --- a/core/src/main/java/com/arangodb/internal/config/ArangoConfig.java +++ b/core/src/main/java/com/arangodb/internal/config/ArangoConfig.java @@ -36,9 +36,7 @@ public class ArangoConfig { private String jwt; private Boolean useSsl; private Optional sslCertValue; - private String sslCertType; private Optional sslAlgorithm; - private Optional sslKeystoreType; private String sslProtocol; private SSLContext sslContext; private Boolean verifyHost; @@ -80,9 +78,7 @@ public void loadProperties(final ArangoConfigProperties properties) { jwt = properties.getJwt().orElse(null); useSsl = properties.getUseSsl().orElse(ArangoDefaults.DEFAULT_USE_SSL); sslCertValue = properties.getSslCertValue(); - sslCertType = properties.getSslCertType().orElse(ArangoDefaults.DEFAULT_SSL_CERT_TYPE); sslAlgorithm = properties.getSslAlgorithm(); - sslKeystoreType = properties.getSslKeystoreType(); sslProtocol = properties.getSslProtocol().orElse(ArangoDefaults.DEFAULT_SSL_PROTOCOL); verifyHost = properties.getVerifyHost().orElse(ArangoDefaults.DEFAULT_VERIFY_HOST); chunkSize = properties.getChunkSize().orElse(ArangoDefaults.DEFAULT_CHUNK_SIZE); @@ -170,18 +166,10 @@ public void setSslCertValue(String sslCertValue) { this.sslCertValue = Optional.ofNullable(sslCertValue); } - public void setSslCertType(String sslCertType) { - this.sslCertType = sslCertType; - } - public void setSslAlgorithm(String sslAlgorithm) { this.sslAlgorithm = Optional.ofNullable(sslAlgorithm); } - public void setSslKeystoreType(String sslKeystoreType) { - this.sslKeystoreType = Optional.ofNullable(sslKeystoreType); - } - public void setSslProtocol(String sslProtocol) { this.sslProtocol = sslProtocol; } @@ -385,8 +373,8 @@ private SSLContext createSslContext() { try { if (sslCertValue.isPresent()) { ByteArrayInputStream is = new ByteArrayInputStream(Base64.getDecoder().decode(sslCertValue.get())); - Certificate cert = CertificateFactory.getInstance(sslCertType).generateCertificate(is); - KeyStore ks = KeyStore.getInstance(sslKeystoreType.orElseGet(KeyStore::getDefaultType)); + Certificate cert = CertificateFactory.getInstance("X.509").generateCertificate(is); + KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); ks.load(null); ks.setCertificateEntry("arangodb", cert); TrustManagerFactory tmf = TrustManagerFactory.getInstance(sslAlgorithm.orElseGet(TrustManagerFactory::getDefaultAlgorithm)); diff --git a/core/src/main/java/com/arangodb/internal/config/ArangoConfigPropertiesImpl.java b/core/src/main/java/com/arangodb/internal/config/ArangoConfigPropertiesImpl.java index da2c56553..c1eadb402 100644 --- a/core/src/main/java/com/arangodb/internal/config/ArangoConfigPropertiesImpl.java +++ b/core/src/main/java/com/arangodb/internal/config/ArangoConfigPropertiesImpl.java @@ -114,21 +114,11 @@ public Optional getSslCertValue() { return Optional.ofNullable(getProperty(KEY_SSL_CERT_VALUE)); } - @Override - public Optional getSslCertType() { - return Optional.ofNullable(getProperty(KEY_SSL_CERT_TYPE)); - } - @Override public Optional getSslAlgorithm() { return Optional.ofNullable(getProperty(KEY_SSL_ALGORITHM)); } - @Override - public Optional getSslKeystoreType() { - return Optional.ofNullable(getProperty(KEY_SSL_KEYSTORE_TYPE)); - } - @Override public Optional getSslProtocol() { return Optional.ofNullable(getProperty(KEY_SSL_PROTOCOL)); diff --git a/test-functional/src/test-ssl/java/com/arangodb/ArangoSslTest.java b/test-functional/src/test-ssl/java/com/arangodb/ArangoSslTest.java index 550e474e2..b454c6111 100644 --- a/test-functional/src/test-ssl/java/com/arangodb/ArangoSslTest.java +++ b/test-functional/src/test-ssl/java/com/arangodb/ArangoSslTest.java @@ -58,7 +58,7 @@ void connect(Protocol protocol) { @ParameterizedTest @EnumSource(Protocol.class) - void connectWithProperties(Protocol protocol) { + void connectWithCertConf(Protocol protocol) { assumeTrue(protocol != Protocol.VST); final ArangoDB arangoDB = new ArangoDB.Builder() diff --git a/test-functional/src/test/resources/arangodb-ssl.properties b/test-functional/src/test/resources/arangodb-ssl.properties index 9078190d9..eb0c74f48 100644 --- a/test-functional/src/test/resources/arangodb-ssl.properties +++ b/test-functional/src/test/resources/arangodb-ssl.properties @@ -2,8 +2,6 @@ arangodb.hosts=172.28.0.1:8529 arangodb.password=test arangodb.useSsl=true arangodb.sslCertValue=MIIDezCCAmOgAwIBAgIEeDCzXzANBgkqhkiG9w0BAQsFADBuMRAwDgYDVQQGEwdVbmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYDVQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRIwEAYDVQQDEwlsb2NhbGhvc3QwHhcNMjAxMTAxMTg1MTE5WhcNMzAxMDMwMTg1MTE5WjBuMRAwDgYDVQQGEwdVbmtub3duMRAwDgYDVQQIEwdVbmtub3duMRAwDgYDVQQHEwdVbmtub3duMRAwDgYDVQQKEwdVbmtub3duMRAwDgYDVQQLEwdVbmtub3duMRIwEAYDVQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1WiDnd4+uCmMG539ZNZB8NwI0RZF3sUSQGPx3lkqaFTZVEzMZL76HYvdc9Qg7difyKyQ09RLSpMALX9euSseD7bZGnfQH52BnKcT09eQ3wh7aVQ5sN2omygdHLC7X9usntxAfv7NzmvdogNXoJQyY/hSZff7RIqWH8NnAUKkjqOe6Bf5LDbxHKESmrFBxOCOnhcpvZWetwpiRdJVPwUn5P82CAZzfiBfmBZnB7D0l+/6Cv4jMuH26uAIcixnVekBQzl1RgwczuiZf2MGO64vDMMJJWE9ClZF1uQuQrwXF6qwhuP1Hnkii6wNbTtPWlGSkqeutr004+Hzbf8KnRY4PAgMBAAGjITAfMB0GA1UdDgQWBBTBrv9Awynt3C5IbaCNyOW5v4DNkTANBgkqhkiG9w0BAQsFAAOCAQEAIm9rPvDkYpmzpSIhR3VXG9Y71gxRDrqkEeLsMoEyqGnw/zx1bDCNeGg2PncLlW6zTIipEBooixIE9U7KxHgZxBy0Et6EEWvIUmnr6F4F+dbTD050GHlcZ7eOeqYTPYeQC502G1Fo4tdNi4lDP9L9XZpf7Q1QimRH2qaLS03ZFZa2tY7ah/RQqZL8Dkxx8/zc25sgTHVpxoK853glBVBs/ENMiyGJWmAXQayewY3EPt/9wGwV4KmU3dPDleQeXSUGPUISeQxFjy+jCw21pYviWVJTNBA9l5ny3GhEmcnOT/gQHCvVRLyGLMbaMZ4JrPwb+aAtBgrgeiK4xeSMMvrbhw== -arangodb.sslCertType=X.509 arangodb.sslAlgorithm=SunX509 -arangodb.sslKeystoreType=jks arangodb.sslProtocol=TLS arangodb.verifyHost=false diff --git a/test-non-functional/src/test/java/mp/ArangoConfigPropertiesMPImpl.java b/test-non-functional/src/test/java/mp/ArangoConfigPropertiesMPImpl.java index 08ed85c44..136869308 100644 --- a/test-non-functional/src/test/java/mp/ArangoConfigPropertiesMPImpl.java +++ b/test-non-functional/src/test/java/mp/ArangoConfigPropertiesMPImpl.java @@ -22,9 +22,7 @@ public final class ArangoConfigPropertiesMPImpl implements ArangoConfigPropertie private Optional timeout; private Optional useSsl; private Optional sslCertValue; - private Optional sslCertType; private Optional sslAlgorithm; - private Optional sslKeystoreType; private Optional sslProtocol; private Optional verifyHost; private Optional chunkSize; @@ -81,21 +79,11 @@ public Optional getSslCertValue() { return sslCertValue; } - @Override - public Optional getSslCertType() { - return sslCertType; - } - @Override public Optional getSslAlgorithm() { return sslAlgorithm; } - @Override - public Optional getSslKeystoreType() { - return sslKeystoreType; - } - @Override public Optional getSslProtocol() { return sslProtocol; diff --git a/test-non-functional/src/test/java/mp/ConfigMPDefaultsTest.java b/test-non-functional/src/test/java/mp/ConfigMPDefaultsTest.java index fbdec222c..ad98ea4e9 100644 --- a/test-non-functional/src/test/java/mp/ConfigMPDefaultsTest.java +++ b/test-non-functional/src/test/java/mp/ConfigMPDefaultsTest.java @@ -24,9 +24,7 @@ private void checkResult(ArangoConfigProperties config) { assertThat(config.getTimeout()).isEmpty(); assertThat(config.getUseSsl()).isEmpty(); assertThat(config.getSslCertValue()).isEmpty(); - assertThat(config.getSslCertType()).isEmpty(); assertThat(config.getSslAlgorithm()).isEmpty(); - assertThat(config.getSslKeystoreType()).isEmpty(); assertThat(config.getSslProtocol()).isEmpty(); assertThat(config.getVerifyHost()).isEmpty(); assertThat(config.getChunkSize()).isEmpty(); diff --git a/test-non-functional/src/test/java/mp/ConfigMPTest.java b/test-non-functional/src/test/java/mp/ConfigMPTest.java index b87a813b7..38a556be0 100644 --- a/test-non-functional/src/test/java/mp/ConfigMPTest.java +++ b/test-non-functional/src/test/java/mp/ConfigMPTest.java @@ -22,9 +22,7 @@ class ConfigMPTest { private final Integer timeout = 9876; private final Boolean useSsl = true; private final String sslCertValue = "sslCertValue"; - private final String sslCertType = "sslCertType"; private final String sslAlgorithm = "sslAlgorithm"; - private final String sslKeystoreType = "sslKeystoreType"; private final String sslProtocol = "sslProtocol"; private final Boolean verifyHost = false; private final Integer vstChunkSize = 1234; @@ -63,9 +61,7 @@ private void checkResult(ArangoConfigProperties config) { assertThat(config.getTimeout()).hasValue(timeout); assertThat(config.getUseSsl()).hasValue(useSsl); assertThat(config.getSslCertValue()).hasValue(sslCertValue); - assertThat(config.getSslCertType()).hasValue(sslCertType); assertThat(config.getSslAlgorithm()).hasValue(sslAlgorithm); - assertThat(config.getSslKeystoreType()).hasValue(sslKeystoreType); assertThat(config.getSslProtocol()).hasValue(sslProtocol); assertThat(config.getVerifyHost()).hasValue(verifyHost); assertThat(config.getChunkSize()).hasValue(vstChunkSize); diff --git a/test-non-functional/src/test/resources/arangodb-config-test.properties b/test-non-functional/src/test/resources/arangodb-config-test.properties index b2f9dc1f7..251b348ae 100644 --- a/test-non-functional/src/test/resources/arangodb-config-test.properties +++ b/test-non-functional/src/test/resources/arangodb-config-test.properties @@ -6,9 +6,7 @@ adb.jwt=testJwt adb.timeout=9876 adb.useSsl=true adb.sslCertValue=sslCertValue -adb.sslCertType=sslCertType adb.sslAlgorithm=sslAlgorithm -adb.sslKeystoreType=sslKeystoreType adb.sslProtocol=sslProtocol adb.verifyHost=false adb.chunkSize=1234