我试图在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 注释解决此错误消息?
答案 0 :(得分:0)
我最近也在学习Spring和Spring的安全性。 你的基本网址模式是否有限制? 我尝试将所有登录重定向到相同的点,根据我的配置需要身份验证。
查看配置是否正确,并在代码上正确设置访问安全性。