该
SecurityContextHolder.getContext().getAuthentication()既然是threadbound重定向后成为空是正确的。但是应该从会话中重新填充它。因此,请尝试跟踪
SPRING_SECURITY_CONTEXT会话中的属性。以下是一些示例代码,可以帮助您理解:
HttpSession session = request.getSession(true);System.out.println(session.getAttribute("SPRING_SECURITY_CONTEXT"));
在Spring Security文档中,有一个关于HTTPS / HTTP切换如何使会话搞糟的部分,也许这暗示了您的问题。
http://static.springsource.org/spring-
security/site/faq.html#d0e223
上面的常见问题解答可以检查您的应用程序中如何处理会话。我可能会开始研究AuthenticationSuccessHandler实现。(如果愿意,可以将其插入您的问题中。)
有关如何在Web应用程序中处理安全上下文的更多详细信息,请参见以下内容:(第5.4节):http :
//static.springsource.org/spring-
security/site/docs/3.0.x/reference/technical-overview。
html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)