问题描述
RestTemplate HTTPclient 开始显示带有 poolingConnectionManager bean 的 SSl 握手异常。
下面是我的代码-
@Bean
public CloseableHttpClient sslHttpClient() throws KeyStoreException,NoSuchAlgorithmException,KeyManagementException {
return HttpClients.custom()
.setDefaultRequestConfig(getRequestConfig())
//on uncommenting this we start getting SSL handshake Exception
//.setConnectionManager(poolingConnectionManager())
.setSSLSocketFactory(csf())
.build();
}
private RequestConfig getRequestConfig(){
return RequestConfig.custom()
.setConnectTimeout(connectionTimeout)
.setConnectionRequestTimeout(connectionTimeout)
.setSocketTimeout(socketTimeout)
.build();
}
private SSLConnectionSocketFactory csf() throws KeyStoreException,KeyManagementException{
TrustStrategy acceptingTrustStrategy = (x509Certificates,s) -> true;
SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null,acceptingTrustStrategy).build();
return new SSLConnectionSocketFactory(sslContext,new NoopHostnameVerifier());
}
@Bean
public PoolingHttpClientConnectionManager poolingConnectionManager() {
PoolingHttpClientConnectionManager poolingConnectionManager = new PoolingHttpClientConnectionManager();
poolingConnectionManager.setMaxTotal(restTotalConnections);
poolingConnectionManager.setDefaultMaxPerRoute(restDefaultConnectionsPerRoute);
return poolingConnectionManager;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)