Spring Security getPrincipal()方法返回anonymousUser

Igo*_*ock 6 java spring spring-mvc spring-security

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

Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
Run Code Online (Sandbox Code Playgroud)

但是校长的价值是"anonymousUser",虽然我已经插入.我怎样才能获得经过身份验证的用户?我在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>
Run Code Online (Sandbox Code Playgroud)

Mar*_*tör 4

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

<http auto-config="true" request-matcher="regex">
  <intercept-url pattern="/welcome*" access="ROLE_USER" />
  <intercept-url pattern="/*" access="IS_AUTHENTICATED,IS_AUTHENTICATED_ANONYMOUSLY"/>
Run Code Online (Sandbox Code Playgroud)