From bf507f23b4bb1174e0624de55fa15b9703f57642 Mon Sep 17 00:00:00 2001 From: ymlam Date: Thu, 12 Sep 2019 12:57:13 -0400 Subject: [PATCH] Activate PoolingHttpClientConnectionManager for use in postback. --- .../altk/comm/engine/postback/PostBack.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/main/java/altk/comm/engine/postback/PostBack.java b/src/main/java/altk/comm/engine/postback/PostBack.java index e02bfc8..a692231 100644 --- a/src/main/java/altk/comm/engine/postback/PostBack.java +++ b/src/main/java/altk/comm/engine/postback/PostBack.java @@ -24,6 +24,10 @@ import org.apache.http.StatusLine; import org.apache.http.client.HttpRequestRetryHandler; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; +import org.apache.http.config.Registry; +import org.apache.http.config.RegistryBuilder; +import org.apache.http.conn.socket.ConnectionSocketFactory; +import org.apache.http.conn.socket.PlainConnectionSocketFactory; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.conn.ssl.TrustStrategy; @@ -75,7 +79,9 @@ public class PostBack private int threadsWaitingToPost; private TrustStrategy tustAllCerts; SSLContext sslContext; - SSLConnectionSocketFactory connectionFactory; + + // Easy ssl certificate verification. + SSLConnectionSocketFactory easyConnectionFactory; CloseableHttpClient httpclient; private int maxRetries; @@ -347,15 +353,22 @@ public class PostBack this.maxBatchSize = maxBatchSize; postQueue = new LinkedList(); threadsWaitingToPost = 0; - cm = new PoolingHttpClientConnectionManager(); - cm.setMaxTotal(senderPoolSize); - cm.setDefaultMaxPerRoute(senderPoolSize); + tustAllCerts = new TrustStrategy() { public boolean isTrusted(X509Certificate[] chain, String authType) { return true; } }; sslContext = SSLContextBuilder.create().loadTrustMaterial(tustAllCerts).build(); - connectionFactory = new SSLConnectionSocketFactory(sslContext, new NoopHostnameVerifier()); + easyConnectionFactory = new SSLConnectionSocketFactory(sslContext, new NoopHostnameVerifier()); + Registry socketFactoryRegistry = RegistryBuilder.create() + .register("http", PlainConnectionSocketFactory.getSocketFactory()) + .register("https", easyConnectionFactory) + .build(); + // Connection manager cm handles ssl certificate verification via the socket registry + cm = new PoolingHttpClientConnectionManager(socketFactoryRegistry); + cm.setMaxTotal(senderPoolSize); + cm.setDefaultMaxPerRoute(senderPoolSize); + // // Retry handler maxRetries = RETRIES_DEFAULT; @@ -372,9 +385,8 @@ public class PostBack }; httpclient = HttpClientBuilder.create() - // .setConnectionManager(cm) - // .setRetryHandler(retryHandler) - .setSSLSocketFactory(connectionFactory) + .setConnectionManager(cm) + .setRetryHandler(retryHandler) .build(); senderPool = new ArrayList();