0

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

我是 Spring Security 的新手,不知道我是否需要自定义 AuthenticationManager、AuthenticationEntryPoint、两者或其他东西。AuthenticationManager 没有办法让我访问 HttpSession,并且 AuthenticationEntryPoint 似乎不是实现此功能的正确位置。

有任何想法吗?

4

1 回答 1

0

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

SecurityContextHolder.getContext().getAuthentication();

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

于 2012-04-27T21:09:46.523 回答