Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
mmm-rain
AndroidUtilCode
提交
38a4609e
A
AndroidUtilCode
项目概览
mmm-rain
/
AndroidUtilCode
与 Fork 源项目一致
从无法访问的项目Fork
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
AndroidUtilCode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
38a4609e
编写于
2月 21, 2019
作者:
B
Blankj
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
see 02/21 log
上级
7db0eb0e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
46 addition
and
21 deletion
+46
-21
utilcode/lib/src/main/java/com/blankj/utilcode/util/http/SSLConfig.java
...rc/main/java/com/blankj/utilcode/util/http/SSLConfig.java
+46
-21
未找到文件。
utilcode/lib/src/main/java/com/blankj/utilcode/util/http/S
sl
Config.java
→
utilcode/lib/src/main/java/com/blankj/utilcode/util/http/S
SL
Config.java
浏览文件 @
38a4609e
package
com.blankj.utilcode.util.http
;
import
android.annotation.SuppressLint
;
import
android.os.Build
;
import
android.support.annotation.NonNull
;
import
java.io.IOException
;
import
java.net.InetAddress
;
...
...
@@ -12,6 +14,7 @@ import java.security.cert.X509Certificate;
import
javax.net.ssl.HostnameVerifier
;
import
javax.net.ssl.SSLContext
;
import
javax.net.ssl.SSLEngine
;
import
javax.net.ssl.SSLSession
;
import
javax.net.ssl.SSLSocket
;
import
javax.net.ssl.SSLSocketFactory
;
import
javax.net.ssl.TrustManager
;
...
...
@@ -23,17 +26,35 @@ import javax.net.ssl.X509TrustManager;
* author: blankj
* blog : http://blankj.com
* time : 2019/02/20
* desc :
* </pre>
*/
public
class
Ssl
Config
{
public
final
class
SSL
Config
{
SSLSocketFactory
mSSLSocketFactory
;
HostnameVerifier
mHostnameVerifier
;
private
SSLSocketFactory
mSSLSocketFactory
;
private
HostnameVerifier
mHostnameVerifier
;
public
SSLConfig
(
@NonNull
SSLSocketFactory
factory
,
@NonNull
HostnameVerifier
verifier
)
{
mSSLSocketFactory
=
factory
;
mHostnameVerifier
=
verifier
;
}
public
static
final
HostnameVerifier
DEFAULT_VERIFIER
=
new
HostnameVerifier
()
{
public
boolean
verify
(
String
hostname
,
SSLSession
session
)
{
return
true
;
}
};
public
static
final
SSLSocketFactory
DEFAULT_SSL_SOCKET_FACTORY
=
new
DefaultSSLSocketFactory
();
public
SSLSocketFactory
getSSLSocketFactory
()
{
return
mSSLSocketFactory
;
}
public
HostnameVerifier
getHostnameVerifier
()
{
return
mHostnameVerifier
;
}
static
class
Default
SocketFactory
extends
SSLSocketFactory
{
private
static
class
DefaultSSL
SocketFactory
extends
SSLSocketFactory
{
private
static
final
String
[]
PROTOCOL_ARRAY
;
private
static
final
TrustManager
[]
DEFAULT_TRUST_MANAGERS
;
...
...
@@ -50,9 +71,11 @@ public class SslConfig {
if
(
android
.
os
.
Build
.
VERSION
.
SDK_INT
>=
android
.
os
.
Build
.
VERSION_CODES
.
N
)
{
DEFAULT_TRUST_MANAGERS
=
new
TrustManager
[]{
new
X509ExtendedTrustManager
()
{
@SuppressLint
(
"TrustAllX509TrustManager"
)
@Override
public
void
checkClientTrusted
(
X509Certificate
[]
chain
,
String
authType
)
{
/**/
}
@SuppressLint
(
"TrustAllX509TrustManager"
)
@Override
public
void
checkServerTrusted
(
X509Certificate
[]
chain
,
String
authType
)
{
/**/
}
...
...
@@ -61,15 +84,19 @@ public class SslConfig {
return
new
X509Certificate
[
0
];
}
@SuppressLint
(
"TrustAllX509TrustManager"
)
@Override
public
void
checkClientTrusted
(
X509Certificate
[]
chain
,
String
authType
,
Socket
socket
)
{
/**/
}
@SuppressLint
(
"TrustAllX509TrustManager"
)
@Override
public
void
checkServerTrusted
(
X509Certificate
[]
chain
,
String
authType
,
Socket
socket
)
{
/**/
}
@SuppressLint
(
"TrustAllX509TrustManager"
)
@Override
public
void
checkClientTrusted
(
X509Certificate
[]
chain
,
String
authType
,
SSLEngine
engine
)
{
/**/
}
@SuppressLint
(
"TrustAllX509TrustManager"
)
@Override
public
void
checkServerTrusted
(
X509Certificate
[]
chain
,
String
authType
,
SSLEngine
engine
)
{
/**/
}
}
...
...
@@ -77,9 +104,11 @@ public class SslConfig {
}
else
{
DEFAULT_TRUST_MANAGERS
=
new
TrustManager
[]{
new
X509TrustManager
()
{
@SuppressLint
(
"TrustAllX509TrustManager"
)
@Override
public
void
checkClientTrusted
(
X509Certificate
[]
chain
,
String
authType
)
{
/**/
}
@SuppressLint
(
"TrustAllX509TrustManager"
)
@Override
public
void
checkServerTrusted
(
X509Certificate
[]
chain
,
String
authType
)
{
/**/
}
...
...
@@ -93,70 +122,66 @@ public class SslConfig {
}
private
SSLSocketFactory
delegate
;
private
SSLSocketFactory
mFactory
;
DefaultSocketFactory
()
{
DefaultS
SLS
ocketFactory
()
{
try
{
SSLContext
sslContext
=
SSLContext
.
getInstance
(
"TLS"
);
sslContext
.
init
(
null
,
DEFAULT_TRUST_MANAGERS
,
new
SecureRandom
());
delegate
=
sslContext
.
getSocketFactory
();
mFactory
=
sslContext
.
getSocketFactory
();
}
catch
(
GeneralSecurityException
e
)
{
throw
new
AssertionError
();
}
}
public
DefaultSocketFactory
(
SSLSocketFactory
factory
)
{
this
.
delegate
=
factory
;
}
@Override
public
String
[]
getDefaultCipherSuites
()
{
return
delegate
.
getDefaultCipherSuites
();
return
mFactory
.
getDefaultCipherSuites
();
}
@Override
public
String
[]
getSupportedCipherSuites
()
{
return
delegate
.
getSupportedCipherSuites
();
return
mFactory
.
getSupportedCipherSuites
();
}
@Override
public
Socket
createSocket
(
Socket
s
,
String
host
,
int
port
,
boolean
autoClose
)
throws
IOException
{
Socket
ssl
=
delegate
.
createSocket
(
s
,
host
,
port
,
autoClose
);
Socket
ssl
=
mFactory
.
createSocket
(
s
,
host
,
port
,
autoClose
);
setSupportProtocolAndCipherSuites
(
ssl
);
return
ssl
;
}
@Override
public
Socket
createSocket
(
String
host
,
int
port
)
throws
IOException
{
Socket
ssl
=
delegate
.
createSocket
(
host
,
port
);
Socket
ssl
=
mFactory
.
createSocket
(
host
,
port
);
setSupportProtocolAndCipherSuites
(
ssl
);
return
ssl
;
}
@Override
public
Socket
createSocket
(
String
host
,
int
port
,
InetAddress
localHost
,
int
localPort
)
throws
IOException
{
Socket
ssl
=
delegate
.
createSocket
(
host
,
port
,
localHost
,
localPort
);
Socket
ssl
=
mFactory
.
createSocket
(
host
,
port
,
localHost
,
localPort
);
setSupportProtocolAndCipherSuites
(
ssl
);
return
ssl
;
}
@Override
public
Socket
createSocket
(
InetAddress
host
,
int
port
)
throws
IOException
{
Socket
ssl
=
delegate
.
createSocket
(
host
,
port
);
Socket
ssl
=
mFactory
.
createSocket
(
host
,
port
);
setSupportProtocolAndCipherSuites
(
ssl
);
return
ssl
;
}
@Override
public
Socket
createSocket
(
InetAddress
address
,
int
port
,
InetAddress
localAddress
,
int
localPort
)
throws
IOException
{
Socket
ssl
=
delegate
.
createSocket
(
address
,
port
,
localAddress
,
localPort
);
Socket
ssl
=
mFactory
.
createSocket
(
address
,
port
,
localAddress
,
localPort
);
setSupportProtocolAndCipherSuites
(
ssl
);
return
ssl
;
}
@Override
public
Socket
createSocket
()
throws
IOException
{
Socket
ssl
=
delegate
.
createSocket
();
Socket
ssl
=
mFactory
.
createSocket
();
setSupportProtocolAndCipherSuites
(
ssl
);
return
ssl
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录