From 1f4479092aa905b164ed7f4558030f9bb3dd4344 Mon Sep 17 00:00:00 2001 From: Peter-Josef Meisch Date: Fri, 24 Nov 2023 19:09:43 +0100 Subject: [PATCH] Improve client ssl configuration. Original Pull Request #2780 Closes #2778 --- .../data/elasticsearch/client/ClientConfiguration.java | 9 +++++++++ .../elasticsearch/client/ClientConfigurationBuilder.java | 8 +++++++- .../client/ClientConfigurationUnitTests.java | 2 +- .../jupiter/ElasticsearchTemplateConfiguration.java | 6 ++---- .../ReactiveElasticsearchTemplateConfiguration.java | 7 +++---- 5 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/springframework/data/elasticsearch/client/ClientConfiguration.java b/src/main/java/org/springframework/data/elasticsearch/client/ClientConfiguration.java index 02aa6f80d..f7d469f4f 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/ClientConfiguration.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/ClientConfiguration.java @@ -233,6 +233,15 @@ public interface ClientConfiguration { */ TerminalClientConfigurationBuilder usingSsl(); + /** + * Connects using https if flag is true. + * + * @param flag whether to use https in the connection + * @return the {@link TerminalClientConfigurationBuilder} + * @since 5.3 + */ + TerminalClientConfigurationBuilder usingSsl(boolean flag); + /** * Connect via {@literal https} using the given {@link SSLContext}.
* NOTE You need to leave out the protocol in diff --git a/src/main/java/org/springframework/data/elasticsearch/client/ClientConfigurationBuilder.java b/src/main/java/org/springframework/data/elasticsearch/client/ClientConfigurationBuilder.java index 9d276a494..f9521d12c 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/ClientConfigurationBuilder.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/ClientConfigurationBuilder.java @@ -25,7 +25,6 @@ import java.util.function.Supplier; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLContext; -import org.elasticsearch.client.RestClientBuilder.HttpClientConfigCallback; import org.springframework.data.elasticsearch.client.ClientConfiguration.ClientConfigurationBuilderWithRequiredEndpoint; import org.springframework.data.elasticsearch.client.ClientConfiguration.MaybeSecureClientConfigurationBuilder; import org.springframework.data.elasticsearch.client.ClientConfiguration.TerminalClientConfigurationBuilder; @@ -106,6 +105,13 @@ class ClientConfigurationBuilder return this; } + @Override + public TerminalClientConfigurationBuilder usingSsl(boolean flag) { + + this.useSsl = flag; + return this; + } + /* * (non-Javadoc) * @see org.springframework.data.elasticsearch.client.ClientConfiguration.MaybeSecureClientConfigurationBuilder#usingSsl(javax.net.ssl.SSLContext) diff --git a/src/test/java/org/springframework/data/elasticsearch/client/ClientConfigurationUnitTests.java b/src/test/java/org/springframework/data/elasticsearch/client/ClientConfigurationUnitTests.java index 8fca09ca4..c73b864c3 100644 --- a/src/test/java/org/springframework/data/elasticsearch/client/ClientConfigurationUnitTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/client/ClientConfigurationUnitTests.java @@ -58,7 +58,7 @@ public class ClientConfigurationUnitTests { ClientConfiguration clientConfiguration = ClientConfiguration.builder() // .connectedTo("foo", "bar") // - .usingSsl() // + .usingSsl(true) // .withDefaultHeaders(headers) // .withConnectTimeout(Duration.ofDays(1)).withSocketTimeout(Duration.ofDays(2)) // .withPathPrefix("myPathPrefix") // diff --git a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchTemplateConfiguration.java b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchTemplateConfiguration.java index b86561eb3..a2e620eb7 100644 --- a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchTemplateConfiguration.java +++ b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchTemplateConfiguration.java @@ -51,10 +51,8 @@ public class ElasticsearchTemplateConfiguration extends ElasticsearchConfigurati configurationBuilder = configurationBuilder.withProxy(proxy); } - if (clusterConnectionInfo.isUseSsl()) { - configurationBuilder = ((ClientConfiguration.MaybeSecureClientConfigurationBuilder) configurationBuilder) - .usingSsl(); - } + configurationBuilder = ((ClientConfiguration.MaybeSecureClientConfigurationBuilder) configurationBuilder) + .usingSsl(clusterConnectionInfo.isUseSsl()); String user = System.getenv("DATAES_ELASTICSEARCH_USER"); String password = System.getenv("DATAES_ELASTICSEARCH_PASSWORD"); diff --git a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ReactiveElasticsearchTemplateConfiguration.java b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ReactiveElasticsearchTemplateConfiguration.java index 45b10a553..c020fe7e7 100644 --- a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ReactiveElasticsearchTemplateConfiguration.java +++ b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ReactiveElasticsearchTemplateConfiguration.java @@ -50,10 +50,9 @@ public class ReactiveElasticsearchTemplateConfiguration extends ReactiveElastics if (proxy != null) { configurationBuilder = configurationBuilder.withProxy(proxy); } - if (clusterConnectionInfo.isUseSsl()) { - configurationBuilder = ((ClientConfiguration.MaybeSecureClientConfigurationBuilder) configurationBuilder) - .usingSsl(); - } + + configurationBuilder = ((ClientConfiguration.MaybeSecureClientConfigurationBuilder) configurationBuilder) + .usingSsl(clusterConnectionInfo.isUseSsl()); String user = System.getenv("DATAES_ELASTICSEARCH_USER"); String password = System.getenv("DATAES_ELASTICSEARCH_PASSWORD");