Spring方法级安全性在第二次调用时失败

我想在GWT应用程序上使用方法级安全性。 我正在尝试使用Spring Security 3.1,因为我在这里找到了一个工作示例,但它没有使用form-login。 阅读此答案后 ,第一个方法调用成功获取SecurityContext,但在下次调用之前将其清除:

[org.springframework.security.web.context.HttpSessionSecurityContextRepository] - Obtained a valid SecurityContext from SPRING_SECURITY_CONTEXT: 'org.springframework.security.core.context.SecurityContextImpl@6fe9f089: Authentication: org.example.MyAppName.server.auth.MyAppNameUserAuthentication@6fe9f089' ... [org.springframework.security.access.intercept.aspectj.AspectJMethodSecurityInterceptor] - Authorization successful ... [org.springframework.security.web.context.SecurityContextPersistenceFilter] - SecurityContextHolder now cleared, as request processing completed ... [org.springframework.security.web.context.HttpSessionSecurityContextRepository] - SecurityContext is empty or contents are anonymous - context will not be stored in HttpSession. [org.springframework.security.web.context.SecurityContextPersistenceFilter] - SecurityContextHolder now cleared, as request processing completed ... [org.springframework.security.web.context.HttpSessionSecurityContextRepository] - HttpSession returned null object for SPRING_SECURITY_CONTEXT 

第二个调用在第一个调用之后直接发生,并在用户登录后立即发生。

是因为我按照其他答案删除了并添加了

我的filter如下:

           

按照我获得的示例,我使用AspectJ作为全局方法安全性,但如果我可以使用它,则不会使用它:

    

感谢您抽出时间来阅读

如果需要更多细节,请告诉我。

这个问题已经解决了。

解决方案的最后一部分是删除使SecurityContextHolder全局化的请求。

如果您遇到同样的问题,可能会发现这篇文章很有帮助。