我使用@Async异步调用Spring方法.该方法调用其他使用@PreAuthorize,Spring Security Annotation注释的方法.要使授权工作,我必须将SecurityContextHolder模式设置为MODE_INHERITABLETHREADLOCAL,以便将身份验证信息传递给异步调用.到目前为止一切正常.
但是,当我以不同的用户身份注销和登录时,在异步方法中,SecurityContextHolder会存储已注销的旧用户的身份验证信息.它当然会引起不必要的AccessDenied异常.同步调用没有这样的问题.
我已定义<task:executor id="executors" pool-size="10"/>,所以可能是一个问题,一旦执行程序池中的线程已初始化,它将不会覆盖身份验证信息?
我在弹出窗口中将用户重定向到OAuth 2.0授权端点.在OAuth 2.0授权服务器使用授权代码重定向用户后,关闭此弹出窗口并刷新主窗口的最佳方法是什么?
在此先感谢您的帮助.
我正在使用maven cobertura插件报告我的多模块项目中的代码覆盖率.
问题是我不知道如何为项目中的所有模块生成一个报告.
到目前为止,我已经为每个模块生成了单独的报告,但是为整个项目提供一个报告会很好.
我的父pom配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.4</version>
<inherited>true</inherited>
<executions>
<execution>
<phase>test-compile</phase>
<goals>
<goal>clean</goal>
<goal>cobertura</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)