1
1
package com .blankj .utilcode .util .http ;
2
2
3
+ import android .annotation .SuppressLint ;
3
4
import android .os .Build ;
5
+ import android .support .annotation .NonNull ;
4
6
5
7
import java .io .IOException ;
6
8
import java .net .InetAddress ;
12
14
import javax .net .ssl .HostnameVerifier ;
13
15
import javax .net .ssl .SSLContext ;
14
16
import javax .net .ssl .SSLEngine ;
17
+ import javax .net .ssl .SSLSession ;
15
18
import javax .net .ssl .SSLSocket ;
16
19
import javax .net .ssl .SSLSocketFactory ;
17
20
import javax .net .ssl .TrustManager ;
23
26
* author: blankj
24
27
* blog : http://blankj.com
25
28
* time : 2019/02/20
26
- * desc :
27
29
* </pre>
28
30
*/
29
- public class SslConfig {
31
+ public final class SSLConfig {
30
32
31
- SSLSocketFactory mSSLSocketFactory ;
32
- HostnameVerifier mHostnameVerifier ;
33
+ private SSLSocketFactory mSSLSocketFactory ;
34
+ private HostnameVerifier mHostnameVerifier ;
33
35
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
+ }
35
56
36
- static class DefaultSocketFactory extends SSLSocketFactory {
57
+ private static class DefaultSSLSocketFactory extends SSLSocketFactory {
37
58
38
59
private static final String [] PROTOCOL_ARRAY ;
39
60
private static final TrustManager [] DEFAULT_TRUST_MANAGERS ;
@@ -50,9 +71,11 @@ static class DefaultSocketFactory extends SSLSocketFactory {
50
71
if (android .os .Build .VERSION .SDK_INT >= android .os .Build .VERSION_CODES .N ) {
51
72
DEFAULT_TRUST_MANAGERS = new TrustManager []{
52
73
new X509ExtendedTrustManager () {
74
+ @ SuppressLint ("TrustAllX509TrustManager" )
53
75
@ Override
54
76
public void checkClientTrusted (X509Certificate [] chain , String authType ) { /**/ }
55
77
78
+ @ SuppressLint ("TrustAllX509TrustManager" )
56
79
@ Override
57
80
public void checkServerTrusted (X509Certificate [] chain , String authType ) { /**/ }
58
81
@@ -61,25 +84,31 @@ public X509Certificate[] getAcceptedIssuers() {
61
84
return new X509Certificate [0 ];
62
85
}
63
86
87
+ @ SuppressLint ("TrustAllX509TrustManager" )
64
88
@ Override
65
89
public void checkClientTrusted (X509Certificate [] chain , String authType , Socket socket ) { /**/ }
66
90
91
+ @ SuppressLint ("TrustAllX509TrustManager" )
67
92
@ Override
68
93
public void checkServerTrusted (X509Certificate [] chain , String authType , Socket socket ) { /**/ }
69
94
95
+ @ SuppressLint ("TrustAllX509TrustManager" )
70
96
@ Override
71
97
public void checkClientTrusted (X509Certificate [] chain , String authType , SSLEngine engine ) { /**/ }
72
98
99
+ @ SuppressLint ("TrustAllX509TrustManager" )
73
100
@ Override
74
101
public void checkServerTrusted (X509Certificate [] chain , String authType , SSLEngine engine ) { /**/ }
75
102
}
76
103
};
77
104
} else {
78
105
DEFAULT_TRUST_MANAGERS = new TrustManager []{
79
106
new X509TrustManager () {
107
+ @ SuppressLint ("TrustAllX509TrustManager" )
80
108
@ Override
81
109
public void checkClientTrusted (X509Certificate [] chain , String authType ) { /**/ }
82
110
111
+ @ SuppressLint ("TrustAllX509TrustManager" )
83
112
@ Override
84
113
public void checkServerTrusted (X509Certificate [] chain , String authType ) { /**/ }
85
114
@@ -93,70 +122,66 @@ public X509Certificate[] getAcceptedIssuers() {
93
122
94
123
}
95
124
96
- private SSLSocketFactory delegate ;
125
+ private SSLSocketFactory mFactory ;
97
126
98
- DefaultSocketFactory () {
127
+ DefaultSSLSocketFactory () {
99
128
try {
100
129
SSLContext sslContext = SSLContext .getInstance ("TLS" );
101
130
sslContext .init (null , DEFAULT_TRUST_MANAGERS , new SecureRandom ());
102
- delegate = sslContext .getSocketFactory ();
131
+ mFactory = sslContext .getSocketFactory ();
103
132
} catch (GeneralSecurityException e ) {
104
133
throw new AssertionError ();
105
134
}
106
135
}
107
136
108
- public DefaultSocketFactory (SSLSocketFactory factory ) {
109
- this .delegate = factory ;
110
- }
111
-
112
137
@ Override
113
138
public String [] getDefaultCipherSuites () {
114
- return delegate .getDefaultCipherSuites ();
139
+ return mFactory .getDefaultCipherSuites ();
115
140
}
116
141
117
142
@ Override
118
143
public String [] getSupportedCipherSuites () {
119
- return delegate .getSupportedCipherSuites ();
144
+ return mFactory .getSupportedCipherSuites ();
120
145
}
121
146
122
147
@ Override
123
148
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 );
125
150
setSupportProtocolAndCipherSuites (ssl );
126
151
return ssl ;
127
152
}
128
153
129
154
@ Override
130
155
public Socket createSocket (String host , int port ) throws IOException {
131
- Socket ssl = delegate .createSocket (host , port );
156
+ Socket ssl = mFactory .createSocket (host , port );
132
157
setSupportProtocolAndCipherSuites (ssl );
133
158
return ssl ;
134
159
}
135
160
136
161
@ Override
137
162
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 );
139
164
setSupportProtocolAndCipherSuites (ssl );
140
165
return ssl ;
141
166
}
142
167
143
168
@ Override
144
169
public Socket createSocket (InetAddress host , int port ) throws IOException {
145
- Socket ssl = delegate .createSocket (host , port );
170
+ Socket ssl = mFactory .createSocket (host , port );
146
171
setSupportProtocolAndCipherSuites (ssl );
147
172
return ssl ;
148
173
}
149
174
150
175
@ Override
151
176
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 );
153
178
setSupportProtocolAndCipherSuites (ssl );
154
179
return ssl ;
155
180
}
156
181
157
182
@ Override
158
183
public Socket createSocket () throws IOException {
159
- Socket ssl = delegate .createSocket ();
184
+ Socket ssl = mFactory .createSocket ();
160
185
setSupportProtocolAndCipherSuites (ssl );
161
186
return ssl ;
162
187
}
0 commit comments