in src/main/java/org/apache/pulsar/manager/utils/HttpUtil.java [90:131]
public static void initHttpClient() {
try {
if (tlsEnabled) {
Resource resource = new FileSystemResource(tlsKeystore);
File trustStoreFile = resource.getFile();
HostnameVerifier hostnameVerifier = (s, sslSession) -> {
// Custom logic to verify host name, tlsHostnameVerifier is false for test
if (!tlsHostnameVerifier) {
return true;
} else {
HostnameVerifier hv= HttpsURLConnection.getDefaultHostnameVerifier();
return hv.verify(s, sslSession);
}
};
SSLContext sslcontext = SSLContexts.custom()
.loadTrustMaterial(
trustStoreFile,
tlsKeystorePassword.toCharArray(),
new TrustSelfSignedStrategy())
.build();
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext, hostnameVerifier);
cm = new PoolingHttpClientConnectionManager(RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", PlainConnectionSocketFactory.getSocketFactory())
.register("https", sslsf)
.build());
} else {
cm = new PoolingHttpClientConnectionManager();
}
cm.setDefaultMaxPerRoute(10);
cm.setMaxTotal(100);
RequestConfig config = RequestConfig.custom().setConnectTimeout(CONNECTION_TIMEOUT)
.setSocketTimeout(SO_TIMEOUT).build();
httpClient = HttpClients.custom()
.setConnectionManager(cm).setDefaultRequestConfig(config).build();
} catch (Exception e) {
log.error("Failed init http client error message: {}, error stack trace: {}", e.getMessage(), e.getCause());
}
}