diff options
Diffstat (limited to 'datafile-app-server/src/main/java/org/onap/dcaegen2/collectors/datafile/http/HttpsClientConnectionManagerUtil.java')
-rw-r--r-- | datafile-app-server/src/main/java/org/onap/dcaegen2/collectors/datafile/http/HttpsClientConnectionManagerUtil.java | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/datafile-app-server/src/main/java/org/onap/dcaegen2/collectors/datafile/http/HttpsClientConnectionManagerUtil.java b/datafile-app-server/src/main/java/org/onap/dcaegen2/collectors/datafile/http/HttpsClientConnectionManagerUtil.java index e60ec0f4..25638562 100644 --- a/datafile-app-server/src/main/java/org/onap/dcaegen2/collectors/datafile/http/HttpsClientConnectionManagerUtil.java +++ b/datafile-app-server/src/main/java/org/onap/dcaegen2/collectors/datafile/http/HttpsClientConnectionManagerUtil.java @@ -18,6 +18,8 @@ package org.onap.dcaegen2.collectors.datafile.http; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.socket.ConnectionSocketFactory; +import org.apache.http.conn.ssl.DefaultHostnameVerifier; +import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.ssl.SSLContextBuilder; @@ -28,6 +30,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.io.FileSystemResource; +import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLContext; import java.io.File; import java.io.IOException; @@ -62,19 +65,19 @@ public class HttpsClientConnectionManagerUtil { } public static void setupOrUpdate(String keyCertPath, String keyCertPasswordPath, String trustedCaPath, - String trustedCaPasswordPath) throws DatafileTaskException { + String trustedCaPasswordPath, Boolean useHostnameVerifier) throws DatafileTaskException { synchronized (HttpsClientConnectionManagerUtil.class) { if (connectionManager != null) { connectionManager.close(); connectionManager = null; } - setup(keyCertPath, keyCertPasswordPath, trustedCaPath, trustedCaPasswordPath); + setup(keyCertPath, keyCertPasswordPath, trustedCaPath, trustedCaPasswordPath, useHostnameVerifier); } logger.trace("HttpsConnectionManager setup or updated"); } private static void setup(String keyCertPath, String keyCertPasswordPath, String trustedCaPath, - String trustedCaPasswordPath) throws DatafileTaskException { + String trustedCaPasswordPath, Boolean useHostnameVerifier) throws DatafileTaskException { try { SSLContextBuilder sslBuilder = SSLContexts.custom(); sslBuilder = supplyKeyInfo(keyCertPath, keyCertPasswordPath, sslBuilder); @@ -82,9 +85,12 @@ public class HttpsClientConnectionManagerUtil { SSLContext sslContext = sslBuilder.build(); + HostnameVerifier hostnameVerifier = (Boolean.TRUE.equals(useHostnameVerifier)) ? new DefaultHostnameVerifier() : + NoopHostnameVerifier.INSTANCE; + SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, new String[] {"TLSv1.2"}, null, - (hostname, session) -> true); + hostnameVerifier); Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create().register("https", sslConnectionSocketFactory) |