diff --git a/novel-front/src/main/java/xyz/zinglizingli/common/utils/RestTemplateUtil.java b/novel-front/src/main/java/xyz/zinglizingli/common/utils/RestTemplateUtil.java index 19046c4..beaa8c5 100644 --- a/novel-front/src/main/java/xyz/zinglizingli/common/utils/RestTemplateUtil.java +++ b/novel-front/src/main/java/xyz/zinglizingli/common/utils/RestTemplateUtil.java @@ -1,7 +1,12 @@ package xyz.zinglizingli.common.utils; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.Charsets; +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.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; @@ -9,7 +14,9 @@ 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.HashMap; import java.util.List; import java.util.Map; @@ -22,15 +29,33 @@ public class RestTemplateUtil { private static Map restTemplateMap = new HashMap<>(); + @SneakyThrows public static RestTemplate getInstance(Charset charset) { RestTemplate restTemplate = restTemplateMap.get(charset.name()); if(restTemplate == null) { - HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(); - httpRequestFactory.setConnectionRequestTimeout(3000); - httpRequestFactory.setConnectTimeout(3000); - httpRequestFactory.setReadTimeout(10000); - 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 = new RestTemplate(requestFactory); List> list = restTemplate.getMessageConverters(); for (HttpMessageConverter httpMessageConverter : list) { if (httpMessageConverter instanceof StringHttpMessageConverter) {