import org.apache.http.client.HttpClient; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.impl.client.HttpClients; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.web.client.RestTemplate; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; @Configuration public class RestTemplateConfig { @Bean(value = "restTemplate") public RestTemplate getRestTemplate () { SSLConnectionSocketFactory sslConnectionSocketFactory = getSSLConnectionSocketFactory(); HttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sslConnectionSocketFactory).build(); HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(); factory.setHttpClient(httpClient); factory.setConnectTimeout(150000); factory.setReadTimeout(30000); RestTemplate restTemplate = new RestTemplate(factory); return restTemplate; } public SSLConnectionSocketFactory getSSLConnectionSocketFactory () { return new SSLConnectionSocketFactory(getSslContext(), (param, sslSession) -> true); } public SSLContext getSslContext (){ SSLContext sslContext = null; try { sslContext = SSLContext.getInstance("TLSV1.2"); sslContext.init(null, new TrustManager[]{new SslTrustManager()}, new SecureRandom()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (KeyManagementException e) { e.printStackTrace(); } return sslContext; } public static class SslTrustManager implements X509TrustManager { @Override public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException { } @Override public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException { } @Override public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } } }
RestTemplateConfig
最新推荐文章于 2025-02-27 22:03:36 发布