Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-cloud-account
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.account
pica-cloud-account
提交
07177abf
提交
07177abf
编写于
3月 02, 2020
作者:
fengyuan.wan
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/dev-login0218' into dev-login0218
上级
f7ef781b
308efb09
流水线
#22218
已失败 于阶段
in 0 second
变更
5
流水线
1
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
20 行增加
和
86 行删除
+20
-86
ThreadPoolConfig.java
...ccount/account/server/configuration/ThreadPoolConfig.java
+1
-0
AutoCodeController.java
...account/account/server/controller/AutoCodeController.java
+6
-4
AccountTypeEnum.java
...a/cloud/account/account/server/enums/AccountTypeEnum.java
+1
-0
RcRepTypeEnum.java
...ica/cloud/account/account/server/enums/RcRepTypeEnum.java
+10
-10
LoginServiceImpl.java
...account/account/server/service/impl/LoginServiceImpl.java
+2
-72
未找到文件。
server/src/main/java/com/pica/cloud/account/account/server/configuration/ThreadPoolConfig.java
浏览文件 @
07177abf
...
@@ -26,6 +26,7 @@ public class ThreadPoolConfig {
...
@@ -26,6 +26,7 @@ public class ThreadPoolConfig {
executor
.
setThreadNamePrefix
(
"account_ThreadPool"
);
executor
.
setThreadNamePrefix
(
"account_ThreadPool"
);
executor
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
executor
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
executor
.
initialize
();
executor
.
initialize
();
System
.
out
.
println
(
"accountThreadPool init end-"
);
return
executor
;
return
executor
;
}
}
}
}
server/src/main/java/com/pica/cloud/account/account/server/controller/AutoCodeController.java
浏览文件 @
07177abf
...
@@ -180,14 +180,16 @@ public class AutoCodeController extends AccountBaseController {
...
@@ -180,14 +180,16 @@ public class AutoCodeController extends AccountBaseController {
* @Return void
* @Return void
*/
*/
private
void
recordRcData
(
HttpServletRequest
req
,
BaseRequest
request
)
{
private
void
recordRcData
(
HttpServletRequest
req
,
BaseRequest
request
)
{
logger
.
info
(
"recordRcData-start"
);
threadPoolTaskExecutor
.
execute
(()
->
{
threadPoolTaskExecutor
.
execute
(()
->
{
CheckcodeRiskReq
rec
=
new
CheckcodeRiskReq
();
CheckcodeRiskReq
rec
=
new
CheckcodeRiskReq
();
rec
.
setMobile
(
request
.
getMobile
());
rec
.
setMobile
(
request
.
getMobile
());
rec
.
setIp
(
IPUtil
.
getIpAdrress
(
req
));
rec
.
setIp
(
IPUtil
.
getIpAdrress
(
req
));
rec
.
setDeviceIp
(
super
.
getDeviceInfo
(
"device_ip"
));
rec
.
setDeviceIp
(
super
.
getDeviceInfo
(
"device_ip"
));
rec
.
setDeviceId
(
request
.
getDevice_token
());
rec
.
setDeviceId
(
request
.
getDevice_token
());
logger
.
info
(
"recordRcData-request-{}"
,
JSON
.
toJSONString
(
rec
));
PicaResponse
resp
=
rcClient
.
logSend
(
rec
);
PicaResponse
resp
=
rcClient
.
logSend
(
rec
);
logger
.
info
(
"
thread execute-app-authCode
resp-{}"
,
JSON
.
toJSONString
(
resp
));
logger
.
info
(
"
recordRcData-
resp-{}"
,
JSON
.
toJSONString
(
resp
));
});
});
}
}
...
@@ -314,9 +316,9 @@ public class AutoCodeController extends AccountBaseController {
...
@@ -314,9 +316,9 @@ public class AutoCodeController extends AccountBaseController {
if
(
Objects
.
nonNull
(
data
))
{
if
(
Objects
.
nonNull
(
data
))
{
CheckcodeRiskResp
respData
=
JSON
.
parseObject
(
CheckcodeRiskResp
respData
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
data
),
CheckcodeRiskResp
.
class
);
JSON
.
toJSONString
(
data
),
CheckcodeRiskResp
.
class
);
if
(
StringUtils
.
isNotEmpty
(
respData
.
getProcessCode
()))
{
if
(
StringUtils
.
isNotEmpty
(
respData
.
getProcessCode
()))
{
Integer
processCode
=
Integer
.
valueOf
(
respData
.
getProcessCode
()
);
String
processCode
=
respData
.
getProcessCode
(
);
if
(
null
!=
processCode
)
{
if
(
StringUtils
.
isNotEmpty
(
processCode
))
{
// 请求返回正常
// 请求返回正常
if
(
processCode
.
equals
(
RcRepTypeEnum
.
RC_SEND_FAIL
.
getCode
()))
{
if
(
processCode
.
equals
(
RcRepTypeEnum
.
RC_SEND_FAIL
.
getCode
()))
{
throw
new
PicaWarnException
(
AccountExceptionEnum
.
PICA_RC_SEND_FAIL
.
getCode
(),
throw
new
PicaWarnException
(
AccountExceptionEnum
.
PICA_RC_SEND_FAIL
.
getCode
(),
...
...
server/src/main/java/com/pica/cloud/account/account/server/enums/AccountTypeEnum.java
浏览文件 @
07177abf
...
@@ -14,6 +14,7 @@ public enum AccountTypeEnum {
...
@@ -14,6 +14,7 @@ public enum AccountTypeEnum {
LOGIN_OUT
(
4
,
"退出登录"
),
LOGIN_OUT
(
4
,
"退出登录"
),
LOGIN_REGISTER
(
5
,
"注册登录"
),
LOGIN_REGISTER
(
5
,
"注册登录"
),
LOGIN_APPLE
(
6
,
"Apple登录"
),
LOGIN_APPLE
(
6
,
"Apple登录"
),
LOGIN_ONE_CLICK
(
7
,
"一键登录"
),
//登录态相关枚举
//登录态相关枚举
LOGIN_STATUS_SUCCESS
(
1
,
"登录成功"
),
LOGIN_STATUS_SUCCESS
(
1
,
"登录成功"
),
...
...
server/src/main/java/com/pica/cloud/account/account/server/enums/RcRepTypeEnum.java
浏览文件 @
07177abf
...
@@ -11,29 +11,29 @@ package com.pica.cloud.account.account.server.enums;
...
@@ -11,29 +11,29 @@ package com.pica.cloud.account.account.server.enums;
public
enum
RcRepTypeEnum
{
public
enum
RcRepTypeEnum
{
// 风控禁止发送
// 风控禁止发送
RC_SEND_FAIL
(
2
,
"发送失败"
),
RC_SEND_FAIL
(
"2"
,
"发送失败"
),
RC_TRIGGER
(
3
,
"需要触发风控滑动验证"
),
RC_TRIGGER
(
"3"
,
"需要触发风控滑动验证"
),
// 账号、IP、设备在黑名单内,前端提示发送成功,后端不发送短信
// 账号、IP、设备在黑名单内,前端提示发送成功,后端不发送短信
RC_BLACKLIST
(
4
,
"发送成功"
),
RC_BLACKLIST
(
"4"
,
"发送成功"
),
RC_DAY_LIMIT
(
5
,
"今日获取验证码次数已超过上限,请使用账户密码登录"
),
RC_DAY_LIMIT
(
"5"
,
"今日获取验证码次数已超过上限,请使用账户密码登录"
),
RC_60_SECOND_LIMIT
(
6
,
"验证码发送频率过高,请{remainTime}秒后再试"
),
RC_60_SECOND_LIMIT
(
"6"
,
"验证码发送频率过高,请{remainTime}秒后再试"
),
XXX
(
0
,
"xxxxxx"
);
XXX
(
"0"
,
"xxxxxx"
);
private
Integer
code
;
private
String
code
;
private
String
msg
;
private
String
msg
;
RcRepTypeEnum
(
Integer
code
,
String
msg
)
{
RcRepTypeEnum
(
String
code
,
String
msg
)
{
this
.
code
=
code
;
this
.
code
=
code
;
this
.
msg
=
msg
;
this
.
msg
=
msg
;
}
}
public
Integer
getCode
()
{
public
String
getCode
()
{
return
code
;
return
code
;
}
}
public
void
setCode
(
Integer
code
)
{
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
this
.
code
=
code
;
}
}
...
...
server/src/main/java/com/pica/cloud/account/account/server/service/impl/LoginServiceImpl.java
浏览文件 @
07177abf
...
@@ -4,7 +4,6 @@ package com.pica.cloud.account.account.server.service.impl;
...
@@ -4,7 +4,6 @@ package com.pica.cloud.account.account.server.service.impl;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.auth0.jwk.InvalidPublicKeyException
;
import
com.auth0.jwk.Jwk
;
import
com.auth0.jwk.Jwk
;
import
com.pica.cloud.account.account.server.constants.Constants
;
import
com.pica.cloud.account.account.server.constants.Constants
;
import
com.pica.cloud.account.account.server.entity.*
;
import
com.pica.cloud.account.account.server.entity.*
;
...
@@ -286,9 +285,7 @@ public class LoginServiceImpl implements LoginService {
...
@@ -286,9 +285,7 @@ public class LoginServiceImpl implements LoginService {
@Override
@Override
@Transactional
@Transactional
public
LoginResult
loginByWeChat
(
BaseRequest
request
)
{
public
LoginResult
loginByWeChat
(
BaseRequest
request
)
{
logger
.
info
(
"loginByWeChat-request:{}"
,
JSON
.
toJSONString
(
request
));
WeChatEntity
weChatEntity
=
null
;
WeChatEntity
weChatEntity
=
null
;
logger
.
info
(
"loginByWeChat-bizType:{}"
,
request
.
getBizType
());
if
(
null
!=
request
.
getBizType
()
&&
if
(
null
!=
request
.
getBizType
()
&&
request
.
getBizType
().
equals
(
1
))
{
request
.
getBizType
().
equals
(
1
))
{
// h5微信登录
// h5微信登录
...
@@ -297,7 +294,6 @@ public class LoginServiceImpl implements LoginService {
...
@@ -297,7 +294,6 @@ public class LoginServiceImpl implements LoginService {
// 原生微信登录
// 原生微信登录
weChatEntity
=
WeChatUtils
.
getAuthorizationInfo
(
appId
,
appSecret
,
request
.
getWeChatCode
());
weChatEntity
=
WeChatUtils
.
getAuthorizationInfo
(
appId
,
appSecret
,
request
.
getWeChatCode
());
}
}
logger
.
info
(
"loginByWeChat-weChatEntity:{}"
,
JSON
.
toJSONString
(
weChatEntity
));
if
(
weChatEntity
==
null
||
StringUtils
.
isEmpty
(
weChatEntity
.
getOpenid
())
||
StringUtils
.
isEmpty
(
weChatEntity
.
getAccess_token
()))
{
if
(
weChatEntity
==
null
||
StringUtils
.
isEmpty
(
weChatEntity
.
getOpenid
())
||
StringUtils
.
isEmpty
(
weChatEntity
.
getAccess_token
()))
{
throw
new
PicaException
(
AccountExceptionEnum
.
PICA_WECHAT_CODE_ERROR
.
getCode
(),
AccountExceptionEnum
.
PICA_WECHAT_CODE_ERROR
.
getMessage
());
throw
new
PicaException
(
AccountExceptionEnum
.
PICA_WECHAT_CODE_ERROR
.
getCode
(),
AccountExceptionEnum
.
PICA_WECHAT_CODE_ERROR
.
getMessage
());
}
}
...
@@ -306,11 +302,9 @@ public class LoginServiceImpl implements LoginService {
...
@@ -306,11 +302,9 @@ public class LoginServiceImpl implements LoginService {
map
.
put
(
"access_token"
,
weChatEntity
.
getAccess_token
());
map
.
put
(
"access_token"
,
weChatEntity
.
getAccess_token
());
map
.
put
(
"openid"
,
weChatEntity
.
getOpenid
());
map
.
put
(
"openid"
,
weChatEntity
.
getOpenid
());
Map
weChatUserInfo
=
WeChatUtils
.
getWeChatUserInfo
(
map
,
weChatURL
);
Map
weChatUserInfo
=
WeChatUtils
.
getWeChatUserInfo
(
map
,
weChatURL
);
logger
.
info
(
"loginByWeChat-weChatUserInfo:{}"
,
JSON
.
toJSONString
(
weChatUserInfo
));
WeChatUserInfoEntity
weChatUserInfoEntity
=
WeChatUtils
.
mergeWechatUserInfo
(
weChatUserInfo
,
weChatEntity
.
getOpenid
());
WeChatUserInfoEntity
weChatUserInfoEntity
=
WeChatUtils
.
mergeWechatUserInfo
(
weChatUserInfo
,
weChatEntity
.
getOpenid
());
String
unionId
=
weChatUserInfoEntity
.
getUnionid
();
String
unionId
=
weChatUserInfoEntity
.
getUnionid
();
AccountUnionEntity
accountUnionEntity
=
accountUnionMapper
.
selectByUnionId
(
unionId
);
AccountUnionEntity
accountUnionEntity
=
accountUnionMapper
.
selectByUnionId
(
unionId
);
logger
.
info
(
"loginByWeChat-accountUnionEntity:{}"
,
JSON
.
toJSONString
(
accountUnionEntity
));
//是否绑定逻辑的判断
//是否绑定逻辑的判断
if
(
accountUnionEntity
!=
null
)
{
if
(
accountUnionEntity
!=
null
)
{
Long
acctId
=
accountUnionEntity
.
getAcctId
();
Long
acctId
=
accountUnionEntity
.
getAcctId
();
...
@@ -322,9 +316,7 @@ public class LoginServiceImpl implements LoginService {
...
@@ -322,9 +316,7 @@ public class LoginServiceImpl implements LoginService {
//account.setMobilePhone(request.getMobile());
//account.setMobilePhone(request.getMobile());
account
.
setMobilePhone
(
""
);
account
.
setMobilePhone
(
""
);
account
.
setRegisterSource
(
request
.
getSourceType
());
account
.
setRegisterSource
(
request
.
getSourceType
());
logger
.
info
(
"loginByWeChat-newToken...start"
);
String
newToken
=
tokenUtils
.
generateToken
(
account
);
String
newToken
=
tokenUtils
.
generateToken
(
account
);
logger
.
info
(
"loginByWeChat-newToken...end"
);
LoginResult
result
=
new
LoginResult
();
LoginResult
result
=
new
LoginResult
();
result
.
setToken
(
newToken
);
result
.
setToken
(
newToken
);
result
.
setUserId
(
userId
);
result
.
setUserId
(
userId
);
...
@@ -338,7 +330,6 @@ public class LoginServiceImpl implements LoginService {
...
@@ -338,7 +330,6 @@ public class LoginServiceImpl implements LoginService {
return
result
;
return
result
;
}
else
{
}
else
{
AccountWeChatInfoEntity
entity
=
accountWeChatInfoMapper
.
selectByUnionId
(
unionId
);
AccountWeChatInfoEntity
entity
=
accountWeChatInfoMapper
.
selectByUnionId
(
unionId
);
logger
.
info
(
"loginByWeChat-数据是否存在...entity:{}"
,
(
entity
==
null
));
//如果微信信息表数据不存在,就把用户信息存储到微信信息表中。
//如果微信信息表数据不存在,就把用户信息存储到微信信息表中。
if
(
entity
==
null
)
{
if
(
entity
==
null
)
{
processWeChatInfoUser
(
weChatUserInfoEntity
,
request
.
getWeChatLoginType
());
processWeChatInfoUser
(
weChatUserInfoEntity
,
request
.
getWeChatLoginType
());
...
@@ -504,7 +495,7 @@ public class LoginServiceImpl implements LoginService {
...
@@ -504,7 +495,7 @@ public class LoginServiceImpl implements LoginService {
result
=
registerService
.
register
(
baseRequest
,
queryMobileEntity
);
result
=
registerService
.
register
(
baseRequest
,
queryMobileEntity
);
}
else
{
}
else
{
//登录功能
//登录功能
result
=
processLogin
(
baseRequest
,
accountInfoEntity
.
getId
(),
AccountTypeEnum
.
LOGIN_
CODE
.
getCode
(),
queryMobileEntity
);
result
=
processLogin
(
baseRequest
,
accountInfoEntity
.
getId
(),
AccountTypeEnum
.
LOGIN_
ONE_CLICK
.
getCode
(),
queryMobileEntity
);
}
}
return
result
;
return
result
;
}
}
...
@@ -686,7 +677,7 @@ public class LoginServiceImpl implements LoginService {
...
@@ -686,7 +677,7 @@ public class LoginServiceImpl implements LoginService {
String
sub
;
String
sub
;
try
{
try
{
String
claim
=
new
String
(
Base64
.
decodeBase64
(
identifyToken
.
split
(
"\\."
)[
1
]));
String
claim
=
new
String
(
Base64
.
decodeBase64
(
identifyToken
.
split
(
"\\."
)[
1
]));
logger
.
info
(
"checkIdentifyToken-claim:{}"
,
claim
);
//
logger.info("checkIdentifyToken-claim:{}", claim);
aud
=
JSONObject
.
parseObject
(
claim
).
get
(
"aud"
).
toString
();
aud
=
JSONObject
.
parseObject
(
claim
).
get
(
"aud"
).
toString
();
sub
=
JSONObject
.
parseObject
(
claim
).
get
(
"sub"
).
toString
();
sub
=
JSONObject
.
parseObject
(
claim
).
get
(
"sub"
).
toString
();
// appleUserId从token中解码取出后赋值
// appleUserId从token中解码取出后赋值
...
@@ -696,69 +687,8 @@ public class LoginServiceImpl implements LoginService {
...
@@ -696,69 +687,8 @@ public class LoginServiceImpl implements LoginService {
throw
new
PicaException
(
"checkIdentifyToken-token decode fail Exception"
,
"token decode fail"
);
throw
new
PicaException
(
"checkIdentifyToken-token decode fail Exception"
,
"token decode fail"
);
}
}
return
this
.
verify
(
publicKey
,
identifyToken
,
aud
,
sub
,
request
);
return
this
.
verify
(
publicKey
,
identifyToken
,
aud
,
sub
,
request
);
// return false;
}
}
public
static
void
main
(
String
[]
args
)
throws
InvalidPublicKeyException
{
String
jwt
=
"eyJraWQiOiJlWGF1bm1MIiwiYWxnIjoiUlMyNTYifQ."
+
"eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLnl1bnF1ZXlpLkRvY3RvciIsImV4cCI6MTU4Mjc4MjE2NSwiaWF0IjoxNTgyNzgxNTY1LCJzdWIiOiIwMDExMzAuMmI4NzE0NjVmZDFmNDVmZmFmNWRjMjg3ZTQ4OWVlZjEuMDMxNSIsImNfaGFzaCI6Ing1b3lsbXRCdG9XRy02eFVzakRNRUEiLCJlbWFpbCI6IjdnZ2E1cmo1dGNAcHJpdmF0ZXJlbGF5LmFwcGxlaWQuY29tIiwiZW1haWxfdmVyaWZpZWQiOiJ0cnVlIiwiaXNfcHJpdmF0ZV9lbWFpbCI6InRydWUiLCJhdXRoX3RpbWUiOjE1ODI3ODE1NjUsIm5vbmNlX3N1cHBvcnRlZCI6dHJ1ZX0.QKybdVM-1cQBNYeVzYvoQY8rc2ZdRAeq8dJQqbd0zagkmz8X9eoVoKvLxI-cO09bbpRAGMv7Bz-bVcIDgUjIxhxudInmhU2vltfYGEt5meKHjsgKg_qdjyK_WC_bG3N-LhfHUhiA1n3rU0owSxVOWdBxmnYZhftjMd2kGphY-leVPYMoUJRKPteJAMx-F8er1L9nBkrfazoE61Y5GR_y8qtdVFIqlo9oPEGlb1qUC7A4kSGp5OVb4vRvWiqQj7MTjsYIGfqUWQmnkoA7dvlCpbiHdel3Lq6UexS4XzC_FBYC7ekBFU1EO-5rFUflhzmxepPnD8S51eS1CO0ProwwOA"
;
// jwt= "eyJraWQiOiI4NkQ4OEtmIiwiYWxnIjoiUlMyNTYifQ." +
// "eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLnl1bnF1ZXlpLkRvY3RvciIsImV4cCI6MTU4Mjc4MDgzMiwiaWF0IjoxNTgyNzgwMjMyLCJzdWIiOiIwMDExMzAuMmI4NzE0NjVmZDFmNDVmZmFmNWRjMjg3ZTQ4OWVlZjEuMDMxNSIsImNfaGFzaCI6Ilg0TzJGQnBQNlJHSm5yTTJaX2toYXciLCJlbWFpbCI6IjdnZ2E1cmo1dGNAcHJpdmF0ZXJlbGF5LmFwcGxlaWQuY29tIiwiZW1haWxfdmVyaWZpZWQiOiJ0cnVlIiwiaXNfcHJpdmF0ZV9lbWFpbCI6InRydWUiLCJhdXRoX3RpbWUiOjE1ODI3ODAyMzIsIm5vbmNlX3N1cHBvcnRlZCI6dHJ1ZX0." +
// "fB6Av1KK38U65HbP5XDfNjWyl2i9C9ojHSxAytDKjXHTCaXB2VMHmmnGzEaoSMnS0WR7LilugrmznqOIXkV8i-SyATw-Wx6hWg_9aiBOj-1eeQhUrqZGsWhjklxCFfK0WpAiyNNSAwiklgiZY41P0jrHzNbxk_5WVIxb0sEQ-igLYQhonTeLQ8WuYuCB6iRMlWHxwNdpSNXb-IlzjEKNm1cozf8RRjg0Y00Hu2VPEai2NJzGx5Ro7x7OpvCfePjxlyJze0tSYDVWxBnklBvHGDHXuTqKqMwNNHzo53JIiSARQD7JHxNCgtNTVIYX075zHNn8UgiLZy1mEdf1KnoXHg";
jwt
=
"eyJraWQiOiJlWGF1bm1MIiwiYWxnIjoiUlMyNTYifQ."
+
"eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLnl1bnF1ZXlpLkRvY3RvciIsImV4cCI6MTU4Mjg3MTkwNSwiaWF0IjoxNTgyODcxMzA1LCJzdWIiOiIwMDExMzAuMmI4NzE0NjVmZDFmNDVmZmFmNWRjMjg3ZTQ4OWVlZjEuMDMxNSIsImNfaGFzaCI6IkliX3VSOWdnZEdVRi1jbzZWZGdfTHciLCJlbWFpbCI6IjdnZ2E1cmo1dGNAcHJpdmF0ZXJlbGF5LmFwcGxlaWQuY29tIiwiZW1haWxfdmVyaWZpZWQiOiJ0cnVlIiwiaXNfcHJpdmF0ZV9lbWFpbCI6InRydWUiLCJhdXRoX3RpbWUiOjE1ODI4NzEzMDUsIm5vbmNlX3N1cHBvcnRlZCI6dHJ1ZX0."
+
"Mek6XzKKUenVQU3IHmLM_tgtilCbsIUSFu1r2gIHsNqseVZYC6JpkQJEZ2SSIwjRPSNUqtK6wqG4s5QbY9qJfIVdVMPqI95eaJiPWKOM6RTlatEhyLs4mokgSutsFHF97nW1qXGidN4tfXaxYygfaoYvOvjeGM-sfUixUbu3fhc5PKH2N91LnVcJNDmqDiUamzOYIXDzn55us8bjCm02fHOQ9D12HY9ambZ_zmPJXAMRi_YoqnSGAhggLfqKJ32pcB2ATHumgDOEhRsuXM89M6pHRS-yzaTfV182prd-fYWdscPVMiEqDt8JXb811lzY8wfqYZxtyg1sEdkq0Hrugw"
;
// 向苹果后台获取公钥参数
String
appleResp
=
null
;
try
{
appleResp
=
HttpClientCloudUtils
.
getHttpExecute
(
Constants
.
APPLE_GET_PUBLIC_KEY_URL
);
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"checkIdentifyToken-get apple public key fail"
);
throw
new
PicaException
(
"get apple public key fail Exception"
,
e
.
getMessage
());
}
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
appleResp
);
String
keys
=
jsonObject
.
getString
(
"keys"
);
JSONArray
arr
=
JSONObject
.
parseArray
(
keys
);
// JSONObject jsonObject1 = JSONObject.parseObject(arr.getString(0));
JSONObject
jsonObject1
=
JSONObject
.
parseObject
(
arr
.
getString
(
1
));
System
.
out
.
println
(
"jsonObject1:"
+
jsonObject1
);
Jwk
jwa
=
Jwk
.
fromValues
(
jsonObject1
);
PublicKey
publicKey
=
jwa
.
getPublicKey
();
//added by joy begin
// publicKey = getPublicKey();
//added by joy end
String
audience
=
"com.yunqueyi.Doctor"
;
String
subject
=
"001130.2b871465fd1f45ffaf5dc287e489eef1.0315"
;
JwtParser
jwtParser
=
Jwts
.
parser
().
setSigningKey
(
publicKey
);
jwtParser
.
requireIssuer
(
Constants
.
APPLE_ISSUE_URL
);
jwtParser
.
requireAudience
(
audience
);
jwtParser
.
requireSubject
(
subject
);
try
{
System
.
out
.
println
(
"checkIdentifyToken-apple-verify-starting"
);
Jws
<
Claims
>
claim
=
jwtParser
.
parseClaimsJws
(
jwt
);
System
.
out
.
println
(
"checkIdentifyToken-apple-verify-claim:"
+
JSON
.
toJSONString
(
claim
));
if
(
claim
!=
null
&&
claim
.
getBody
().
containsKey
(
"auth_time"
))
{
JSONObject
claimBody
=
JSONObject
.
parseObject
(
JSON
.
toJSONString
(
claim
.
getBody
()),
JSONObject
.
class
);
System
.
out
.
println
(
"success......"
);
}
}
catch
(
ExpiredJwtException
e
)
{
System
.
out
.
println
(
"checkIdentifyToken-apple token expired"
+
e
.
getMessage
());
throw
new
PicaException
(
"apple token expired Exception {}"
,
e
.
getMessage
());
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"checkIdentifyToken-apple token illegal"
+
e
.
getMessage
());
throw
new
PicaException
(
"apple token illegal Exception"
,
e
.
getMessage
());
}
}
/**
/**
* @Description 验证苹果公钥
* @Description 验证苹果公钥
* @Author Chongwen.jiang
* @Author Chongwen.jiang
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录