Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-notice
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xingmin
yd-notice
Commits
1477e0ad
Commit
1477e0ad
authored
Aug 28, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
0089f13b
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
6 deletions
+29
-6
yd-notice-service/src/main/java/com/yd/notice/service/utils/SfpTokenUtil.java
+29
-6
No files found.
yd-notice-service/src/main/java/com/yd/notice/service/utils/SfpTokenUtil.java
View file @
1477e0ad
...
@@ -52,13 +52,13 @@ public class SfpTokenUtil {
...
@@ -52,13 +52,13 @@ public class SfpTokenUtil {
seal
=
"SFP2023!@#"
;
seal
=
"SFP2023!@#"
;
issuer
=
"sfpfamilyfinancialplanning"
;
issuer
=
"sfpfamilyfinancialplanning"
;
expiration
=
2592000L
;
// 24小时
expiration
=
2592000L
;
// 24小时
log
.
info
(
"SfpTokenUtil 加载生产环境配置,
issuer: {}, expiration: {} 秒"
,
issuer
,
expiration
);
log
.
info
(
"SfpTokenUtil 加载生产环境配置,
seal: {}, issuer: {}, expiration: {} 秒"
,
seal
,
issuer
,
expiration
);
}
else
{
}
else
{
// 测试/开发环境配置(请替换为实际的测试密钥)
// 测试/开发环境配置(请替换为实际的测试密钥)
seal
=
"zhb123!@#"
;
seal
=
"zhb123!@#"
;
issuer
=
"zuihuibi"
;
issuer
=
"zuihuibi"
;
expiration
=
2592000L
;
expiration
=
2592000L
;
log
.
info
(
"SfpTokenUtil 加载测试环境配置,
issuer: {}, expiration: {} 秒"
,
issuer
,
expiration
);
log
.
info
(
"SfpTokenUtil 加载测试环境配置,
seal: {},issuer: {}, expiration: {} 秒"
,
seal
,
issuer
,
expiration
);
}
}
}
}
...
@@ -104,24 +104,37 @@ public class SfpTokenUtil {
...
@@ -104,24 +104,37 @@ public class SfpTokenUtil {
String
resultCode
=
"SUCCESS"
;
String
resultCode
=
"SUCCESS"
;
Claims
claims
=
null
;
Claims
claims
=
null
;
log
.
info
(
"SfpTokenUtil.getClaimsFromToken - 原始 token (前50字符): {}"
,
token
!=
null
?
token
.
substring
(
0
,
Math
.
min
(
50
,
token
.
length
()))
+
"..."
:
"null"
);
try
{
try
{
// 去除 issuer 前缀(如果存在)
String
realToken
=
token
;
String
realToken
=
token
;
if
(
token
.
startsWith
(
issuer
+
" "
))
{
if
(
issuer
!=
null
&&
token
.
startsWith
(
issuer
+
" "
))
{
realToken
=
token
.
substring
(
issuer
.
length
()
+
1
);
realToken
=
token
.
substring
(
issuer
.
length
()
+
1
);
log
.
info
(
"SfpTokenUtil.getClaimsFromToken - 已剥离前缀 '{} ',realToken 前50字符: {}"
,
issuer
,
realToken
.
substring
(
0
,
Math
.
min
(
50
,
realToken
.
length
()))
+
"..."
);
}
else
{
log
.
info
(
"SfpTokenUtil.getClaimsFromToken - token 不以 '{} ' 开头,未剥离"
,
issuer
);
}
}
log
.
info
(
"SfpTokenUtil.getClaimsFromToken - 当前使用的 seal 前缀: {}"
,
seal
!=
null
?
seal
.
substring
(
0
,
Math
.
min
(
4
,
seal
.
length
()))
+
"..."
:
"null"
);
Jws
<
Claims
>
jwsClaims
=
Jwts
.
parser
()
Jws
<
Claims
>
jwsClaims
=
Jwts
.
parser
()
.
setSigningKey
(
seal
)
.
setSigningKey
(
seal
)
.
parseClaimsJws
(
realToken
);
.
parseClaimsJws
(
realToken
);
claims
=
jwsClaims
.
getBody
();
claims
=
jwsClaims
.
getBody
();
log
.
info
(
"SfpTokenUtil.getClaimsFromToken - 解析成功,claims: {}"
,
claims
);
}
catch
(
ExpiredJwtException
e
)
{
}
catch
(
ExpiredJwtException
e
)
{
resultCode
=
"EXPIRED"
;
resultCode
=
"EXPIRED"
;
log
.
warn
(
"SfpTokenUtil.getClaimsFromToken - Token 已过期: {}"
,
e
.
getMessage
());
}
catch
(
UnsupportedJwtException
|
MalformedJwtException
|
SignatureException
|
IllegalArgumentException
e
)
{
}
catch
(
UnsupportedJwtException
|
MalformedJwtException
|
SignatureException
|
IllegalArgumentException
e
)
{
resultCode
=
"INVALID"
;
resultCode
=
"INVALID"
;
log
.
warn
(
"SfpTokenUtil.getClaimsFromToken - Token 无效, 异常类型: {}, 消息: {}"
,
e
.
getClass
().
getSimpleName
(),
e
.
getMessage
());
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
resultCode
=
"INVALID"
;
resultCode
=
"INVALID"
;
log
.
error
(
"SfpTokenUtil.getClaimsFromToken - 未知异常: "
,
e
);
}
}
map
.
put
(
"resultCode"
,
resultCode
);
map
.
put
(
"resultCode"
,
resultCode
);
...
@@ -137,12 +150,22 @@ public class SfpTokenUtil {
...
@@ -137,12 +150,22 @@ public class SfpTokenUtil {
*/
*/
public
static
String
getUserIdFromToken
(
String
token
)
{
public
static
String
getUserIdFromToken
(
String
token
)
{
Map
<
String
,
Object
>
map
=
getClaimsFromToken
(
token
);
Map
<
String
,
Object
>
map
=
getClaimsFromToken
(
token
);
if
(
"SUCCESS"
.
equals
(
map
.
get
(
"resultCode"
)))
{
String
resultCode
=
(
String
)
map
.
get
(
"resultCode"
);
if
(
"SUCCESS"
.
equals
(
resultCode
))
{
Claims
claims
=
(
Claims
)
map
.
get
(
"claims"
);
Claims
claims
=
(
Claims
)
map
.
get
(
"claims"
);
if
(
claims
!=
null
)
{
if
(
claims
!=
null
)
{
Object
userId
=
claims
.
get
(
CLAIM_KEY_USERID
);
Object
userId
=
claims
.
get
(
CLAIM_KEY_USERID
);
return
userId
!=
null
?
userId
.
toString
()
:
null
;
if
(
userId
!=
null
)
{
log
.
info
(
"SfpTokenUtil.getUserIdFromToken - 成功获取 UserId: {}"
,
userId
);
return
userId
.
toString
();
}
else
{
log
.
warn
(
"SfpTokenUtil.getUserIdFromToken - Claims 中缺少 '{}' 字段"
,
CLAIM_KEY_USERID
);
}
}
else
{
log
.
warn
(
"SfpTokenUtil.getUserIdFromToken - Claims 为空"
);
}
}
}
else
{
log
.
warn
(
"SfpTokenUtil.getUserIdFromToken - 解析失败,resultCode: {}"
,
resultCode
);
}
}
return
null
;
return
null
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment