使用@Async时的SecurityContextHolder.getContext()NPE

Ass*_*mon 2 java spring multithreading spring-security

我正在尝试将spring服务的一系列顺序调用转换为异步.

我已经注释了方法@Async并添加了taskExecutor configuratinos.

我可以看到该方法现在异步调用但我遇到SecurityContextHolder.getContext()抛出此错误的问题 :

java.util.concurrent.ExecutionException: java.lang.NullPointerException

非常感谢任何见解.谢谢!

Bri*_*ent 6

SecurityContext存储在ThreadLocal中.因此,如果您从未在任何位置设置它的新线程访问它,则SecurityContext为null.

更新:添加了Threadlocal javadoc链接