Spring安全性具有SimpleGrantedAuthority但hasRole不起作用

时间:2018-05-30 02:25:25

标签: spring-security

我有以下代码......

 private static Collection<? extends GrantedAuthority> 
 readAuthorities(DecodedJWT jwt) {
    ...
    return authorities;
 }

它显示Admin角色。但是,当我尝试通过...访问网站时

protected void configure(HttpSecurity http) throws Exception {
    http.csrf().disable();
    http.antMatchers(ADMIN).hasRole(Role.ADMIN.getRoleName())
    ....
}
// Role.ADMIN.getRoleName() == "Admin"

但是当我进入需要管理员权限的网站时,我得到了403。

我错过了什么?

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

事实证明,Spring安全性会在诸如.hasRole()和@Secured之类的角色安全性要求之前自动添加“ ROLE_”。因此,在将角色分配给用户时,必须在角色之前添加“ ROLE_”。如果这令人困惑,请告诉我,我将更深入地介绍我的项目中的示例,最近12个小时我一直在从事该项目,而现在没有时间。