|
|
@@ -0,0 +1,99 @@ |
|
|
|
package com.telpo.dipperposition.config; |
|
|
|
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import okhttp3.ConnectionPool; |
|
|
|
import okhttp3.OkHttpClient; |
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
import org.springframework.context.annotation.Bean; |
|
|
|
import org.springframework.context.annotation.Configuration; |
|
|
|
|
|
|
|
import javax.net.ssl.SSLContext; |
|
|
|
import javax.net.ssl.SSLSocketFactory; |
|
|
|
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; |
|
|
|
import java.util.concurrent.TimeUnit; |
|
|
|
|
|
|
|
/** |
|
|
|
* @program: DataPushServer |
|
|
|
* @description: http设置 |
|
|
|
* @author: linwl |
|
|
|
* @create: 2020-07-17 15:29 |
|
|
|
*/ |
|
|
|
@Configuration |
|
|
|
@Slf4j |
|
|
|
public class OkHttpConfig { |
|
|
|
|
|
|
|
@Value("${OkHttp-config.pool.max-conn}") |
|
|
|
private Integer maxConn; |
|
|
|
|
|
|
|
@Value("${OkHttp-config.pool.keep-alive}") |
|
|
|
private Integer keepAlive; |
|
|
|
|
|
|
|
@Value("${OkHttp-config.read-timeout}") |
|
|
|
private long readTimeout; |
|
|
|
|
|
|
|
@Value("${OkHttp-config.conn-timeout}") |
|
|
|
private long connTimeout; |
|
|
|
|
|
|
|
@Value("${OkHttp-config.write-timeout}") |
|
|
|
private long writeTimeout; |
|
|
|
|
|
|
|
@Bean |
|
|
|
public X509TrustManager x509TrustManager() { |
|
|
|
return new 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]; |
|
|
|
} |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
@Bean |
|
|
|
public SSLSocketFactory sslSocketFactory() { |
|
|
|
try { |
|
|
|
// 信任任何链接 |
|
|
|
SSLContext sslContext = SSLContext.getInstance("TLS"); |
|
|
|
sslContext.init(null, new TrustManager[] {x509TrustManager()}, new SecureRandom()); |
|
|
|
return sslContext.getSocketFactory(); |
|
|
|
} catch (NoSuchAlgorithmException | KeyManagementException e) { |
|
|
|
log.error("okhttp3 send https error:", e); |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Create a new connection pool with tuning parameters appropriate for a single-user application. |
|
|
|
* The tuning parameters in this pool are subject to change in future OkHttp releases. Currently |
|
|
|
*/ |
|
|
|
@Bean |
|
|
|
public ConnectionPool pool() { |
|
|
|
return new ConnectionPool(maxConn, keepAlive, TimeUnit.MINUTES); |
|
|
|
} |
|
|
|
|
|
|
|
@Bean |
|
|
|
public OkHttpClient okHttpClient() { |
|
|
|
OkHttpClient.Builder builder = new OkHttpClient.Builder(); |
|
|
|
builder |
|
|
|
.connectTimeout(connTimeout, TimeUnit.SECONDS) |
|
|
|
.readTimeout(readTimeout, TimeUnit.SECONDS) |
|
|
|
.writeTimeout(writeTimeout, TimeUnit.SECONDS) |
|
|
|
.connectionPool(pool()) // 连接池 |
|
|
|
.retryOnConnectionFailure(true) |
|
|
|
.hostnameVerifier((s, sslSession) -> true) |
|
|
|
.sslSocketFactory(sslSocketFactory(), x509TrustManager()); |
|
|
|
return builder.build(); |
|
|
|
} |
|
|
|
} |