如何解决休息模板 |带有 SSL 的 HttpClient 无法设置连接池属性
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 举报,一经查实,本站将立刻删除。