认证信息如何放置新开的线程里
来源:4-6 认证流程源码级详解
丿恶搞丿
2020-03-11
当前用户登录成功以后,在执行业务过程中需要另开一条线程远程去访问其他的服务,因为新开的这个线程没有认证信息,因此访问被拒绝
SecurityContextHolder.getContext().getAuthentication()获取到当前用户的认证信息后,如何放置到新开的线程里
new Thread(new Runnable() {
@Override
public void run() {
//Fegin调用其他服务
}
}).start();
写回答
1回答
-
JoJo
2020-03-11
SecurityContextHolder.getContext().getAuthentication() 这个代码实际上是从ThreadLocal里获取的用户信息,所以在子线程用InheritableThreadLocal就可以了。具体可以参考这里:https://www.cnblogs.com/Nonnetta/p/10175662.html
00
Spring Security技术栈开发企业级认证与授权
Spring Security技术栈,REST风格开发常见接口,独立开发认证授权模块保证REST服务安全
2662 学习 · 1561 问题
相似问题