Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
IJPay
提交
8e45b317
I
IJPay
项目概览
int
/
IJPay
10 个月 前同步成功
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
IJPay
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
8e45b317
编写于
9月 22, 2022
作者:
J
Javen205
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
🔒
修复 #I5LA7X
上级
c6c63ebd
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
27 deletion
+24
-27
IJPay-Core/src/main/java/com/ijpay/core/http/AbstractHttpDelegate.java
...c/main/java/com/ijpay/core/http/AbstractHttpDelegate.java
+24
-27
未找到文件。
IJPay-Core/src/main/java/com/ijpay/core/http/AbstractHttpDelegate.java
浏览文件 @
8e45b317
package
com.ijpay.core.http
;
import
cn.hutool.core.io.FileUtil
;
import
cn.hutool.core.net.SSLContextBuilder
;
import
cn.hutool.core.net.SSLProtocols
;
import
cn.hutool.http.HttpRequest
;
import
cn.hutool.http.HttpResponse
;
import
cn.hutool.http.HttpUtil
;
import
cn.hutool.http.ssl.SSLSocketFactoryBuilder
;
import
com.ijpay.core.IJPayHttpResponse
;
import
javax.net.ssl.KeyManager
;
import
javax.net.ssl.KeyManagerFactory
;
import
javax.net.ssl.SSLSocketFactory
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.InputStream
;
import
java.nio.file.Files
;
import
java.nio.file.Paths
;
import
java.security.KeyStore
;
import
java.security.SecureRandom
;
import
java.util.Map
;
...
...
@@ -241,14 +244,9 @@ public abstract class AbstractHttpDelegate {
public
String
upload
(
String
url
,
String
data
,
String
certPath
,
String
certPass
,
String
filePath
,
String
protocol
)
{
try
{
File
file
=
FileUtil
.
newFile
(
filePath
);
SSLSocketFactory
sslSocketFactory
=
getSslSocketFactory
(
certPath
,
null
,
certPass
,
protocol
);
return
HttpRequest
.
post
(
url
)
.
setSSLSocketFactory
(
SSLSocketFactoryBuilder
.
create
()
.
setProtocol
(
protocol
)
.
setKeyManagers
(
getKeyManager
(
certPass
,
certPath
,
null
))
.
setSecureRandom
(
new
SecureRandom
())
.
build
()
)
.
setSSLSocketFactory
(
sslSocketFactory
)
.
header
(
"Content-Type"
,
"multipart/form-data;boundary=\"boundary\""
)
.
form
(
"file"
,
file
)
.
form
(
"meta"
,
data
)
...
...
@@ -270,7 +268,7 @@ public abstract class AbstractHttpDelegate {
* @return {@link String} 请求返回的结果
*/
public
String
upload
(
String
url
,
String
data
,
String
certPath
,
String
certPass
,
String
filePath
)
{
return
upload
(
url
,
data
,
certPath
,
certPass
,
filePath
,
SSL
SocketFactoryBuilder
.
TLSv1
);
return
upload
(
url
,
data
,
certPath
,
certPass
,
filePath
,
SSL
Protocols
.
TLSv1
);
}
/**
...
...
@@ -285,14 +283,9 @@ public abstract class AbstractHttpDelegate {
*/
public
String
post
(
String
url
,
String
data
,
String
certPath
,
String
certPass
,
String
protocol
)
{
try
{
SSLSocketFactory
socketFactory
=
getSslSocketFactory
(
certPath
,
null
,
certPass
,
protocol
);
return
HttpRequest
.
post
(
url
)
.
setSSLSocketFactory
(
SSLSocketFactoryBuilder
.
create
()
.
setProtocol
(
protocol
)
.
setKeyManagers
(
getKeyManager
(
certPass
,
certPath
,
null
))
.
setSecureRandom
(
new
SecureRandom
())
.
build
()
)
.
setSSLSocketFactory
(
socketFactory
)
.
body
(
data
)
.
execute
()
.
body
();
...
...
@@ -301,6 +294,7 @@ public abstract class AbstractHttpDelegate {
}
}
/**
* post 请求
*
...
...
@@ -311,7 +305,7 @@ public abstract class AbstractHttpDelegate {
* @return {@link String} 请求返回的结果
*/
public
String
post
(
String
url
,
String
data
,
String
certPath
,
String
certPass
)
{
return
post
(
url
,
data
,
certPath
,
certPass
,
SSL
SocketFactoryBuilder
.
TLSv1
);
return
post
(
url
,
data
,
certPath
,
certPass
,
SSL
Protocols
.
TLSv1
);
}
/**
...
...
@@ -326,14 +320,9 @@ public abstract class AbstractHttpDelegate {
*/
public
String
post
(
String
url
,
String
data
,
InputStream
certFile
,
String
certPass
,
String
protocol
)
{
try
{
SSLSocketFactory
sslSocketFactory
=
getSslSocketFactory
(
certPass
,
certFile
,
null
,
protocol
);
return
HttpRequest
.
post
(
url
)
.
setSSLSocketFactory
(
SSLSocketFactoryBuilder
.
create
()
.
setProtocol
(
protocol
)
.
setKeyManagers
(
getKeyManager
(
certPass
,
null
,
certFile
))
.
setSecureRandom
(
new
SecureRandom
())
.
build
()
)
.
setSSLSocketFactory
(
sslSocketFactory
)
.
body
(
data
)
.
execute
()
.
body
();
...
...
@@ -352,7 +341,7 @@ public abstract class AbstractHttpDelegate {
* @return {@link String} 请求返回的结果
*/
public
String
post
(
String
url
,
String
data
,
InputStream
certFile
,
String
certPass
)
{
return
post
(
url
,
data
,
certFile
,
certPass
,
SSL
SocketFactoryBuilder
.
TLSv1
);
return
post
(
url
,
data
,
certFile
,
certPass
,
SSL
Protocols
.
TLSv1
);
}
/**
...
...
@@ -496,10 +485,18 @@ public abstract class AbstractHttpDelegate {
if
(
certFile
!=
null
)
{
clientStore
.
load
(
certFile
,
certPass
.
toCharArray
());
}
else
{
clientStore
.
load
(
new
FileInputStream
(
certPath
),
certPass
.
toCharArray
());
clientStore
.
load
(
Files
.
newInputStream
(
Paths
.
get
(
certPath
)
),
certPass
.
toCharArray
());
}
KeyManagerFactory
kmf
=
KeyManagerFactory
.
getInstance
(
KeyManagerFactory
.
getDefaultAlgorithm
());
kmf
.
init
(
clientStore
,
certPass
.
toCharArray
());
return
kmf
.
getKeyManagers
();
}
private
SSLSocketFactory
getSslSocketFactory
(
String
certPath
,
InputStream
certFile
,
String
certPass
,
String
protocol
)
throws
Exception
{
SSLContextBuilder
sslContextBuilder
=
SSLContextBuilder
.
create
();
sslContextBuilder
.
setProtocol
(
protocol
);
sslContextBuilder
.
setKeyManagers
(
getKeyManager
(
certPass
,
certPath
,
certFile
));
sslContextBuilder
.
setSecureRandom
(
new
SecureRandom
());
return
sslContextBuilder
.
buildChecked
().
getSocketFactory
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录