|
@@ -1,109 +0,0 @@
|
|
|
-package shop.alien.second.config;
|
|
|
-
|
|
|
-import okhttp3.ConnectionPool;
|
|
|
-import okhttp3.OkHttpClient;
|
|
|
-import org.springframework.context.annotation.Bean;
|
|
|
-import org.springframework.context.annotation.Configuration;
|
|
|
-
|
|
|
-import javax.net.ssl.*;
|
|
|
-import java.security.KeyManagementException;
|
|
|
-import java.security.NoSuchAlgorithmException;
|
|
|
-import java.security.SecureRandom;
|
|
|
-import java.security.cert.X509Certificate;
|
|
|
-import java.util.concurrent.TimeUnit;
|
|
|
-
|
|
|
-/**
|
|
|
- * OkHttp配置
|
|
|
- *
|
|
|
- * @author ssk
|
|
|
- * @version 1.0
|
|
|
- * @date 2024/10/27 10:29
|
|
|
- */
|
|
|
-@Configuration
|
|
|
-public class OkHttpConfig {
|
|
|
-
|
|
|
- /**
|
|
|
- * OkHttp 客户端配置
|
|
|
- *
|
|
|
- * @return OkHttp 客户端配
|
|
|
- */
|
|
|
- @Bean
|
|
|
- public OkHttpClient okHttpClient() {
|
|
|
- return new OkHttpClient.Builder()
|
|
|
- .sslSocketFactory(sslSocketFactory(), x509TrustManager())
|
|
|
- .hostnameVerifier(hostnameVerifier())
|
|
|
- //是否开启缓存
|
|
|
- .retryOnConnectionFailure(false)
|
|
|
- //连接池
|
|
|
- .connectionPool(pool())
|
|
|
- //连接超时时间
|
|
|
- .connectTimeout(15L, TimeUnit.SECONDS)
|
|
|
- //读取超时时间
|
|
|
- .readTimeout(15L, TimeUnit.SECONDS)
|
|
|
- //是否允许重定向
|
|
|
- .followRedirects(true)
|
|
|
- .build();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 忽略证书校验
|
|
|
- *
|
|
|
- * @return 证书信任管理器
|
|
|
- */
|
|
|
- @Bean
|
|
|
- public X509TrustManager x509TrustManager() {
|
|
|
- return new X509TrustManager() {
|
|
|
- @Override
|
|
|
- public void checkClientTrusted(X509Certificate[] x509Certificates, String s) {
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void checkServerTrusted(X509Certificate[] x509Certificates, String s) {
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public X509Certificate[] getAcceptedIssuers() {
|
|
|
- return new X509Certificate[0];
|
|
|
- }
|
|
|
- };
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 信任所有 SSL 证书
|
|
|
- *
|
|
|
- * @return
|
|
|
- */
|
|
|
- @Bean
|
|
|
- public SSLSocketFactory sslSocketFactory() {
|
|
|
- try {
|
|
|
- TrustManager[] trustManagers = new TrustManager[]{x509TrustManager()};
|
|
|
- SSLContext sslContext = SSLContext.getInstance("SSL");
|
|
|
- sslContext.init(null, trustManagers, new SecureRandom());
|
|
|
- return sslContext.getSocketFactory();
|
|
|
- } catch (NoSuchAlgorithmException | KeyManagementException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 连接池配置
|
|
|
- *
|
|
|
- * @return 连接池
|
|
|
- */
|
|
|
- @Bean
|
|
|
- public ConnectionPool pool() {
|
|
|
- // 最大连接数、连接存活时间、存活时间单位(分钟)
|
|
|
- return new ConnectionPool(200, 5, TimeUnit.MINUTES);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 信任所有主机名
|
|
|
- *
|
|
|
- * @return 主机名校验
|
|
|
- */
|
|
|
- @Bean
|
|
|
- public HostnameVerifier hostnameVerifier() {
|
|
|
- return (s, sslSession) -> true;
|
|
|
- }
|
|
|
-}
|