From de2bb731b586d5b68073d9f0723e3fe85cfb802f Mon Sep 17 00:00:00 2001 From: xiongxiaoyang <773861846@qq.com> Date: Thu, 12 Dec 2019 18:00:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E8=AF=B4=E7=88=AC=E8=99=AB=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E5=BF=BD=E7=95=A5SSL=E8=AF=81=E4=B9=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java2nb/books/util/RestTemplateUtil.java | 34 ++++++++++++++++--- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/novel-admin/src/main/java/com/java2nb/books/util/RestTemplateUtil.java b/novel-admin/src/main/java/com/java2nb/books/util/RestTemplateUtil.java index 08fa09b..858b2e3 100644 --- a/novel-admin/src/main/java/com/java2nb/books/util/RestTemplateUtil.java +++ b/novel-admin/src/main/java/com/java2nb/books/util/RestTemplateUtil.java @@ -1,22 +1,46 @@ package com.java2nb.books.util; +import lombok.SneakyThrows; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.conn.ssl.TrustStrategy; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.web.client.RestTemplate; +import javax.net.ssl.SSLContext; import java.nio.charset.Charset; +import java.security.cert.X509Certificate; import java.util.List; public class RestTemplateUtil { + @SneakyThrows public static RestTemplate getInstance(String charset) { - HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(); - httpRequestFactory.setConnectionRequestTimeout(3000); - httpRequestFactory.setConnectTimeout(3000); - httpRequestFactory.setReadTimeout(10000); - RestTemplate restTemplate = new RestTemplate(httpRequestFactory); + TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; + + //忽略证书 + SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() + .loadTrustMaterial(null, acceptingTrustStrategy) + .build(); + + SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext); + + CloseableHttpClient httpClient = HttpClients.custom() + .setSSLSocketFactory(csf) + .build(); + + HttpComponentsClientHttpRequestFactory requestFactory = + new HttpComponentsClientHttpRequestFactory(); + + requestFactory.setHttpClient(httpClient); + requestFactory.setConnectionRequestTimeout(3000); + requestFactory.setConnectTimeout(3000); + requestFactory.setReadTimeout(10000); + RestTemplate restTemplate = new RestTemplate(requestFactory); List<HttpMessageConverter<?>> list = restTemplate.getMessageConverters(); for (HttpMessageConverter<?> httpMessageConverter : list) { if(httpMessageConverter instanceof StringHttpMessageConverter) {