From d4ea2d77d5688ebdbdcf888f02fac040e69bfbc6 Mon Sep 17 00:00:00 2001 From: Jan Berge Sommerdahl Date: Wed, 1 Feb 2023 10:43:34 +0100 Subject: [PATCH] httpclient builder: tls strategy customization Signed-off-by: Jan Berge Sommerdahl --- .../ApacheHttpClient5TransportBuilder.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/java-client/src/main/java/org/opensearch/client/transport/httpclient5/ApacheHttpClient5TransportBuilder.java b/java-client/src/main/java/org/opensearch/client/transport/httpclient5/ApacheHttpClient5TransportBuilder.java index bf75ba74b4..25c49e9118 100644 --- a/java-client/src/main/java/org/opensearch/client/transport/httpclient5/ApacheHttpClient5TransportBuilder.java +++ b/java-client/src/main/java/org/opensearch/client/transport/httpclient5/ApacheHttpClient5TransportBuilder.java @@ -79,6 +79,7 @@ public class ApacheHttpClient5TransportBuilder { private Optional chunkedEnabled; private JsonpMapper mapper; private TransportOptions options; + private TlsStrategy tlsStrategy; /** * Creates a new builder instance and sets the hosts that the client will send requests to. @@ -263,6 +264,16 @@ public ApacheHttpClient5TransportBuilder setChunkedEnabled(boolean chunkedEnable return this; } + /** + * Optional custom tls strategy to replace the default + * + * @param tlsStrategy custom tlsStrategy + */ + public ApacheHttpClient5TransportBuilder setTlsStrategy(TlsStrategy tlsStrategy) { + this.tlsStrategy = tlsStrategy; + return this; + } + /** * Creates a new {@link RestClient} based on the provided configuration. */ @@ -338,7 +349,7 @@ private CloseableHttpAsyncClient createHttpClient() { } try { - final TlsStrategy tlsStrategy = ClientTlsStrategyBuilder.create() + final TlsStrategy tlsStrategy = this.tlsStrategy != null ? this.tlsStrategy : ClientTlsStrategyBuilder.create() .setSslContext(SSLContext.getDefault()) // See https://issues.apache.org/jira/browse/HTTPCLIENT-2219 .setTlsDetailsFactory(new Factory() {