11package com .blankj .utilcode .util .http ;
22
3+ import android .annotation .SuppressLint ;
34import android .os .Build ;
5+ import android .support .annotation .NonNull ;
46
57import java .io .IOException ;
68import java .net .InetAddress ;
1214import javax .net .ssl .HostnameVerifier ;
1315import javax .net .ssl .SSLContext ;
1416import javax .net .ssl .SSLEngine ;
17+ import javax .net .ssl .SSLSession ;
1518import javax .net .ssl .SSLSocket ;
1619import javax .net .ssl .SSLSocketFactory ;
1720import javax .net .ssl .TrustManager ;
2326 * author: blankj
2427 * blog : http://blankj.com
2528 * time : 2019/02/20
26- * desc :
2729 * </pre>
2830 */
29- public class SslConfig {
31+ public final class SSLConfig {
3032
31- SSLSocketFactory mSSLSocketFactory ;
32- HostnameVerifier mHostnameVerifier ;
33+ private SSLSocketFactory mSSLSocketFactory ;
34+ private HostnameVerifier mHostnameVerifier ;
3335
34-
36+ public SSLConfig (@ NonNull SSLSocketFactory factory , @ NonNull HostnameVerifier verifier ) {
37+ mSSLSocketFactory = factory ;
38+ mHostnameVerifier = verifier ;
39+ }
40+
41+ public static final HostnameVerifier DEFAULT_VERIFIER = new HostnameVerifier () {
42+ public boolean verify (String hostname , SSLSession session ) {
43+ return true ;
44+ }
45+ };
46+
47+ public static final SSLSocketFactory DEFAULT_SSL_SOCKET_FACTORY = new DefaultSSLSocketFactory ();
48+
49+ public SSLSocketFactory getSSLSocketFactory () {
50+ return mSSLSocketFactory ;
51+ }
52+
53+ public HostnameVerifier getHostnameVerifier () {
54+ return mHostnameVerifier ;
55+ }
3556
36- static class DefaultSocketFactory extends SSLSocketFactory {
57+ private static class DefaultSSLSocketFactory extends SSLSocketFactory {
3758
3859 private static final String [] PROTOCOL_ARRAY ;
3960 private static final TrustManager [] DEFAULT_TRUST_MANAGERS ;
@@ -50,9 +71,11 @@ static class DefaultSocketFactory extends SSLSocketFactory {
5071 if (android .os .Build .VERSION .SDK_INT >= android .os .Build .VERSION_CODES .N ) {
5172 DEFAULT_TRUST_MANAGERS = new TrustManager []{
5273 new X509ExtendedTrustManager () {
74+ @ SuppressLint ("TrustAllX509TrustManager" )
5375 @ Override
5476 public void checkClientTrusted (X509Certificate [] chain , String authType ) { /**/ }
5577
78+ @ SuppressLint ("TrustAllX509TrustManager" )
5679 @ Override
5780 public void checkServerTrusted (X509Certificate [] chain , String authType ) { /**/ }
5881
@@ -61,25 +84,31 @@ public X509Certificate[] getAcceptedIssuers() {
6184 return new X509Certificate [0 ];
6285 }
6386
87+ @ SuppressLint ("TrustAllX509TrustManager" )
6488 @ Override
6589 public void checkClientTrusted (X509Certificate [] chain , String authType , Socket socket ) { /**/ }
6690
91+ @ SuppressLint ("TrustAllX509TrustManager" )
6792 @ Override
6893 public void checkServerTrusted (X509Certificate [] chain , String authType , Socket socket ) { /**/ }
6994
95+ @ SuppressLint ("TrustAllX509TrustManager" )
7096 @ Override
7197 public void checkClientTrusted (X509Certificate [] chain , String authType , SSLEngine engine ) { /**/ }
7298
99+ @ SuppressLint ("TrustAllX509TrustManager" )
73100 @ Override
74101 public void checkServerTrusted (X509Certificate [] chain , String authType , SSLEngine engine ) { /**/ }
75102 }
76103 };
77104 } else {
78105 DEFAULT_TRUST_MANAGERS = new TrustManager []{
79106 new X509TrustManager () {
107+ @ SuppressLint ("TrustAllX509TrustManager" )
80108 @ Override
81109 public void checkClientTrusted (X509Certificate [] chain , String authType ) { /**/ }
82110
111+ @ SuppressLint ("TrustAllX509TrustManager" )
83112 @ Override
84113 public void checkServerTrusted (X509Certificate [] chain , String authType ) { /**/ }
85114
@@ -93,70 +122,66 @@ public X509Certificate[] getAcceptedIssuers() {
93122
94123 }
95124
96- private SSLSocketFactory delegate ;
125+ private SSLSocketFactory mFactory ;
97126
98- DefaultSocketFactory () {
127+ DefaultSSLSocketFactory () {
99128 try {
100129 SSLContext sslContext = SSLContext .getInstance ("TLS" );
101130 sslContext .init (null , DEFAULT_TRUST_MANAGERS , new SecureRandom ());
102- delegate = sslContext .getSocketFactory ();
131+ mFactory = sslContext .getSocketFactory ();
103132 } catch (GeneralSecurityException e ) {
104133 throw new AssertionError ();
105134 }
106135 }
107136
108- public DefaultSocketFactory (SSLSocketFactory factory ) {
109- this .delegate = factory ;
110- }
111-
112137 @ Override
113138 public String [] getDefaultCipherSuites () {
114- return delegate .getDefaultCipherSuites ();
139+ return mFactory .getDefaultCipherSuites ();
115140 }
116141
117142 @ Override
118143 public String [] getSupportedCipherSuites () {
119- return delegate .getSupportedCipherSuites ();
144+ return mFactory .getSupportedCipherSuites ();
120145 }
121146
122147 @ Override
123148 public Socket createSocket (Socket s , String host , int port , boolean autoClose ) throws IOException {
124- Socket ssl = delegate .createSocket (s , host , port , autoClose );
149+ Socket ssl = mFactory .createSocket (s , host , port , autoClose );
125150 setSupportProtocolAndCipherSuites (ssl );
126151 return ssl ;
127152 }
128153
129154 @ Override
130155 public Socket createSocket (String host , int port ) throws IOException {
131- Socket ssl = delegate .createSocket (host , port );
156+ Socket ssl = mFactory .createSocket (host , port );
132157 setSupportProtocolAndCipherSuites (ssl );
133158 return ssl ;
134159 }
135160
136161 @ Override
137162 public Socket createSocket (String host , int port , InetAddress localHost , int localPort ) throws IOException {
138- Socket ssl = delegate .createSocket (host , port , localHost , localPort );
163+ Socket ssl = mFactory .createSocket (host , port , localHost , localPort );
139164 setSupportProtocolAndCipherSuites (ssl );
140165 return ssl ;
141166 }
142167
143168 @ Override
144169 public Socket createSocket (InetAddress host , int port ) throws IOException {
145- Socket ssl = delegate .createSocket (host , port );
170+ Socket ssl = mFactory .createSocket (host , port );
146171 setSupportProtocolAndCipherSuites (ssl );
147172 return ssl ;
148173 }
149174
150175 @ Override
151176 public Socket createSocket (InetAddress address , int port , InetAddress localAddress , int localPort ) throws IOException {
152- Socket ssl = delegate .createSocket (address , port , localAddress , localPort );
177+ Socket ssl = mFactory .createSocket (address , port , localAddress , localPort );
153178 setSupportProtocolAndCipherSuites (ssl );
154179 return ssl ;
155180 }
156181
157182 @ Override
158183 public Socket createSocket () throws IOException {
159- Socket ssl = delegate .createSocket ();
184+ Socket ssl = mFactory .createSocket ();
160185 setSupportProtocolAndCipherSuites (ssl );
161186 return ssl ;
162187 }
0 commit comments