Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-cloud-core
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-cloud-core
Commits
904dd7fd
Commit
904dd7fd
authored
Jan 21, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ThreadLocal
parent
757fc11b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
1 deletions
+23
-1
yd-auth-core/src/main/java/com/yd/auth/core/security/JwtTokenProvider.java
+1
-1
yd-feign/src/main/java/com/yd/feign/config/FeignTokenInterceptor.java
+22
-0
No files found.
yd-auth-core/src/main/java/com/yd/auth/core/security/JwtTokenProvider.java
View file @
904dd7fd
...
...
@@ -301,7 +301,7 @@ public class JwtTokenProvider {
String
configSecret
=
"v92cuMDOZEd0WIbmX9LHQpZ0HgMIfRPXvDXGmP+5ThbADd2YdD0mCbGujIvLSBZR2ZWby8PKYRT2ReBQ7wIDPQ=="
;
// 要解析的 token
String
token
=
"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ1c2VyXzEwMDEiLCJyb2xlcyI6W10sImlhdCI6MTc2ODU2M
TY5NywiZXhwIjoxNzY4NjQ4MDk3fQ.LMbTJE-lnWZn9YSNpgMH9tz298BAHJTtVBuahtZosklRnrnfUTaz3yurJpneMseDOybXjmxpPXeCErdmgdO8yw
"
;
String
token
=
"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ1c2VyXzEwMDEiLCJyb2xlcyI6W10sImlhdCI6MTc2ODU2M
jQwMSwiZXhwIjozMzQ2NDEwMDAxfQ.izMcWJfmhgi3rpyHn1_fNTbSYjWQMAjRN21hNWTBsbp84tsJSWaYew2Zr_dyyKf3woKoH_QsQ74FZl4gAs7Fug
"
;
// 分析 token
System
.
out
.
println
(
"使用配置文件中的密钥分析 Token:"
);
...
...
yd-feign/src/main/java/com/yd/feign/config/FeignTokenInterceptor.java
View file @
904dd7fd
...
...
@@ -13,8 +13,20 @@ import javax.servlet.http.HttpServletRequest;
public
class
FeignTokenInterceptor
implements
RequestInterceptor
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
FeignTokenInterceptor
.
class
);
// 使用ThreadLocal存储Token,用于异步场景
private
static
final
ThreadLocal
<
String
>
THREAD_LOCAL_TOKEN
=
new
ThreadLocal
<>();
@Override
public
void
apply
(
RequestTemplate
template
)
{
// 首先尝试从ThreadLocal获取(异步场景)
String
threadLocalToken
=
THREAD_LOCAL_TOKEN
.
get
();
if
(
threadLocalToken
!=
null
&&
!
threadLocalToken
.
trim
().
isEmpty
())
{
template
.
header
(
"Authorization"
,
threadLocalToken
);
logger
.
debug
(
"从ThreadLocal添加Authorization头到Feign请求"
);
return
;
}
// ThreadLocal没有,再从请求上下文获取(同步场景)
ServletRequestAttributes
attributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
if
(
attributes
==
null
)
{
...
...
@@ -32,4 +44,14 @@ public class FeignTokenInterceptor implements RequestInterceptor {
logger
.
debug
(
"当前请求中没有Authorization头,跳过Token传递"
);
}
}
// 设置ThreadLocal Token的方法
public
static
void
setThreadLocalToken
(
String
token
)
{
THREAD_LOCAL_TOKEN
.
set
(
token
);
}
// 清理ThreadLocal Token的方法
public
static
void
clearThreadLocalToken
()
{
THREAD_LOCAL_TOKEN
.
remove
();
}
}
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