SpringBoot 2.X 异步处理@Async 拿不到 SpringSecurity 认证信息问题 解决方案

   日期:2020-07-02     浏览:180    评论:0    
核心提示:问题描述main方法开启异步处理service使用异步注解springSecurity获取认证信息返回null问题原因SpringSecurity是线程绑定的 异步处理是重新new一个线程进行业务处理所以说新线程里是没有认证信息的解决方案需要重写AsyncConfigurer使用SpringSecurity的 装饰线程池这样就可以携带认证信息了@Configurationpublic class AsyncConfig extend...

问题描述

main方法开启异步处理

service使用异步注解

springSecurity 获取认证信息返回null

问题原因

SpringSecurity 是线程绑定的  异步处理是重新new一个线程进行业务处理

所以说 新线程里是没有 认证信息的

解决方案

需要重写AsyncConfigurer 使用SpringSecurity 的 装饰线程池 这样就可以携带认证信息了

@Configuration
public class AsyncConfig extends AsyncConfigurerSupport {

    
    @Override
    public Executor getAsyncExecutor() {
        return new DelegatingSecurityContextExecutorService(Executors.newFixedThreadPool(5));
    }

}

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服