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> list = restTemplate.getMessageConverters(); for (HttpMessageConverter httpMessageConverter : list) { if(httpMessageConverter instanceof StringHttpMessageConverter) {