在Spring Security中检查现有的HttpSession

时间:2012-04-27 20:20:18

标签: java spring spring-mvc spring-security

是否可以通过检查Spring Security中的现有HttpSession来验证用户?我希望用户通过一个URL(http://example.com/auth)通过CAS进行身份验证,而不是其他URL。例如,如果他们直接进入http://example.com/content,那么我想检查HttpSession并返回401 Unauthorized代码,如果他们还没有登录CAS。如果他们已经进入/ auth页面并登录,则转到/ content将返回内容。这样做的主要原因是避免CAS在身份验证期间导致的任何重定向。

我是Spring Security的新手,无法弄清楚我是否需​​要自定义AuthenticationManager,AuthenticationEntryPoint,或其他。 AuthenticationManager没有办法让我访问HttpSession,而AuthenticationEntryPoint似乎不是实现此功能的正确位置。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Spring Security未使用HTTP会话。 相反,您可以轻松调用此静态方法:

SecurityContextHolder.getContext().getAuthentication();

坦率地说,我认为您需要正确配置Spring安全性,以避免检查身份验证并手动重定向到其他页面。