@PreAuthorize(" isAuthenticated()")重定向服务器的次数过多

时间:2016-08-03 04:35:47

标签: java spring spring-security authorization

我试图在Spring中学习 @EnableGlobalMethodSecurity 注释。这是一个似乎对我不起作用的例子。

这个工作:让我们说我有一个全局控制器,在每个页面上显示登录的用户名,如下所示:

@ControllerAdvice
public class GlobalController {

    @ModelAttribute("username")
    public String getCurrUser(Principal principal) {
        if (principal != null) {
            return principal.getName();
        }
        return null;
    }
}

这个没有工作:现在使用相同的控制器,但这次使用 preAuthorize 注释。这会返回以下错误消息: localhost重定向您太​​多次。

@ControllerAdvice
public class GlobalController {

    @PreAuthorize("isAuthenticated()")
    @ModelAttribute("username")
    public String getCurrUser(Principal principal) {

        return principal.getName();
    }
}

我的 SecurityConfig类的注释如下:

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled=true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {

...

那么如何使用 PreAuthorize 注释解决此错误消息?

1 个答案:

答案 0 :(得分:0)

我最近也在学习Spring和Spring的安全性。 你的基本网址模式是否有限制? 我尝试将所有登录重定向到相同的点,根据我的配置需要身份验证。

查看配置是否正确,并在代码上正确设置访问安全性。