【问题标题】:Spring: SecurityContextHolder.getContext().getAuthentication().getPrincipal() returns null [duplicate]Spring:SecurityContextHolder.getContext().getAuthentication().getPrincipal() 返回 null [重复]
【发布时间】:2014-06-15 01:05:03
【问题描述】:

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

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

身份验证返回为空。

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

【问题讨论】:

    标签: java spring principalcontext


    【解决方案1】:

    看起来 Spring Security 在每次有 “重定向” 时都会实例化一个新的上下文。
    所以 getContext() 返回一个 new object 而不是您在登录时使用的那个。有人建议从会话中获取上下文
    请参阅此帖子的答案。
    "Spring's SecurityContextHolder.getContext().getAuthentication() returns null after RedirectView is used in HTTPS/SSL"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-07
      • 2016-07-24
      • 2013-07-08
      • 2017-10-17
      • 2015-08-17
      • 1970-01-01
      • 2019-04-28
      相关资源
      最近更新 更多