关于在Spring Boot + SpringSecurity工程中Sercurity上下文对象无法传递至新线程的问题解决

关于在Spring Boot + SpringSecurity工程中Sercurity上下文对象无法传递至新线程的问题解决

背景

OJ系统后端开发过程中,前端用户提交代码后,后端接收到请求开始对提交记录进行保存并开启一个新线程用于判题,但是由于开启了Mybatis-plus自动填充功能,在保存数据时需要从Sercurity上下文对象中取得UserDetail信息,由于新线程的SercurityConxt中的UserDetail信息为空导致空指针异常。最终通过Security自动传递解决问题

添加线程池Bean

java 复制代码
@Configuration
public class AsyncConfig implements AsyncConfigurer {
    @Override
    public Executor getAsyncExecutor() {
        // 使用 DelegatingSecurityContextExecutorService 包装线程池
        return new DelegatingSecurityContextExecutorService(Executors.newFixedThreadPool(5));
    }
}

添加后通过@Async注解开启的异步线程可在创建时获取到SercurityContext对象。

相关推荐
API快乐传递者几秒前
Python 爬虫获取 1688 商品详情 API 接口实战指南
java·前端·python
MX_93593 分钟前
Spring MVC全注解开发实现及其原理
java·spring·mvc
共享家95275 分钟前
C++ 日志类设计
linux·c++·后端
凯尔萨厮6 分钟前
创建Web项目(Maven管理)
java·maven·web
掘金者阿豪11 分钟前
一次 AI 调用 15 万 Token 只花了 \$0.058?彻底搞懂 Token、缓存读、补全计费机制!(附完整架构图)
后端
程序员柒叔15 分钟前
OpenClaw 踩坑记:Cron 任务 Feishu 推送失败
后端·github
AskHarries21 分钟前
在 AI 快速发展的今天,“人还重要吗?
后端
yaoxin52112321 分钟前
381. Java IO API - 控制文件树遍历流程
java·开发语言
SimonKing22 分钟前
OpenCode 20 个斜杠命令,90% 的人只用过 3 个
java·后端·程序员
尽兴-23 分钟前
Spring与Dubbo整合原理与源码分析
java·spring·dubbo·enabledubbo