Spring:securitycontextholder.getcontext()。getauthentication()。getprincipal()返回null

时间:2014-04-29 07:55:33

标签: java spring principalcontext

在我的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实施的新手。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

每次有&#34;重定向&#34; 时,看起来Spring Security会实例化一个新的上下文。
因此 getContext()会返回新对象,而不是您在登录时使用的对象。有人建议从会话中获取上下文 请参阅这篇文章的答案 &#34; Spring's SecurityContextHolder.getContext().getAuthentication() returns null after RedirectView is used in HTTPS/SSL&#34;