|
@@ -7,7 +7,13 @@ import com.swago.baseswago.constant.UrlConstant
|
|
import com.swago.baseswago.util.AppContext
|
|
import com.swago.baseswago.util.AppContext
|
|
import okhttp3.OkHttpClient
|
|
import okhttp3.OkHttpClient
|
|
import retrofit2.Retrofit
|
|
import retrofit2.Retrofit
|
|
|
|
+import java.io.InputStream
|
|
|
|
+import java.security.KeyStore
|
|
import java.util.concurrent.TimeUnit
|
|
import java.util.concurrent.TimeUnit
|
|
|
|
+import javax.net.ssl.KeyManagerFactory
|
|
|
|
+import javax.net.ssl.SSLContext
|
|
|
|
+import javax.net.ssl.TrustManagerFactory
|
|
|
|
+import javax.net.ssl.X509TrustManager
|
|
|
|
|
|
/**
|
|
/**
|
|
*@date 2021/8/14 14:05
|
|
*@date 2021/8/14 14:05
|
|
@@ -26,6 +32,7 @@ object RetrofitManager {
|
|
if (BuildConfig.DEBUG) {
|
|
if (BuildConfig.DEBUG) {
|
|
okHttpClientBuilder.addInterceptor(ChuckerInterceptor(AppContext.getContext()))
|
|
okHttpClientBuilder.addInterceptor(ChuckerInterceptor(AppContext.getContext()))
|
|
}
|
|
}
|
|
|
|
+ setSSLSocketFactory(okHttpClientBuilder)
|
|
okHttpClientBuilder.addInterceptor(SwagoInterceptor())
|
|
okHttpClientBuilder.addInterceptor(SwagoInterceptor())
|
|
okHttpClientBuilder.retryOnConnectionFailure(true)
|
|
okHttpClientBuilder.retryOnConnectionFailure(true)
|
|
okHttpClientBuilder.connectTimeout(30000, TimeUnit.MILLISECONDS)
|
|
okHttpClientBuilder.connectTimeout(30000, TimeUnit.MILLISECONDS)
|
|
@@ -46,4 +53,27 @@ object RetrofitManager {
|
|
.build()
|
|
.build()
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private fun setSSLSocketFactory(okHttpClientBuilder: OkHttpClient.Builder) {
|
|
|
|
+ // 加载 PKCS12 格式的密钥库
|
|
|
|
+ val inputStream: InputStream = AppContext.getContext().assets.open("tt.me-live.cn_bundle.p12")
|
|
|
|
+ val keyStore = KeyStore.getInstance("PKCS12")
|
|
|
|
+ val keyStorePassword = "zxcvbn" // 密钥库密码
|
|
|
|
+ keyStore.load(inputStream, keyStorePassword.toCharArray())
|
|
|
|
+
|
|
|
|
+ // 用于从密钥库中获取密钥
|
|
|
|
+ val keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm())
|
|
|
|
+ keyManagerFactory.init(keyStore, keyStorePassword.toCharArray())
|
|
|
|
+
|
|
|
|
+ val trustManagerFactory =
|
|
|
|
+ TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())
|
|
|
|
+ trustManagerFactory.init(keyStore)
|
|
|
|
+
|
|
|
|
+ // 创建 SSLContext,用于建立安全连接
|
|
|
|
+ val sslContext = SSLContext.getInstance("TLS")
|
|
|
|
+ sslContext.init(keyManagerFactory.keyManagers, trustManagerFactory.trustManagers, null)
|
|
|
|
+ okHttpClientBuilder.sslSocketFactory(
|
|
|
|
+ sslContext.socketFactory ,
|
|
|
|
+ (trustManagerFactory.trustManagers[0] as X509TrustManager
|
|
|
|
+ ))
|
|
|
|
+ }
|
|
}
|
|
}
|