1

在我的 MVC 应用程序中,即使在我尝试使用主体对象登录后,

Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();

身份验证返回为 null。

在 Spring-security 上下文中,

<intercept-url pattern="/test/user/login" access="IS_AUTHENTICATED_ANONYMOUSLY" />

Web.xml 中的 Servlet 映射:

<servlet-mapping>
        <servlet-name>appServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

我是 MVC 实现的新手。请帮我解决这个问题。

4

1 回答 1

0

每次出现“重定向”时,Spring Security 都会实例化一个新的上下文。
因此getContext()返回一个新对象,而不是您在登录时使用的对象。有人建议从 session 获取上下文
请参阅此帖子的答案。
在 HTTPS/SSL 中使用 RedirectView 后 Spring 的 SecurityContextHolder.getContext().getAuthentication() 返回 null

于 2014-07-22T16:39:09.700 回答