Spring Security getPrincipal()方法返回anonymousUser

时间:2013-02-02 19:58:14

标签: java spring spring-mvc spring-security

在我的春季网络应用程序中,我希望在我的控制器中获得经过身份验证的用户:

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

但是校长的价值是“匿名用户”,虽然我已经掌握了。 如何获得经过身份验证的用户? 我在spring-security.xml中的配置:

<http auto-config="true" request-matcher="regex">
    <intercept-url pattern="/welcome*" access="ROLE_USER" />
    <form-login login-page="/login" default-target-url="/welcome"
        authentication-failure-url="/loginfailed" />
    <logout logout-success-url="/logout" />
</http>

1 个答案:

答案 0 :(得分:4)

不确定我理解,但试试这个

<http auto-config="true" request-matcher="regex">
  <intercept-url pattern="/welcome*" access="ROLE_USER" />
  <intercept-url pattern="/*" access="IS_AUTHENTICATED,IS_AUTHENTICATED_ANONYMOUSLY"/>