小编eya*_*asu的帖子

在Spring Security中从userDetails中排除GrantedAuthority

我想将角色视为用户的属性,而不是拥有独立的角色类,因此我不需要在数据库中有角色表。但是通用的spring UserDetails服务通过了GrantedAuthority(即Collection<GrantedAuthority> getAuthorities())作为用户详细信息参数之一)。

我想做的就是用GrantedAuthority在“用户”类中声明的角色(字符串角色)替换此通用参数,如下所示。

@Entity(name="usr")
public class User {
    @Id
    @Column(unique=true)
    private String username;
    private String password;
    private String role;

    public String getUsername() {               
        return username;        
    }

    public void setUsername(String username) {          
        this.username = username;       
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }
}
Run Code Online (Sandbox Code Playgroud)

还有我的customUserdetail服务类:

@Service
@Transactional(readOnly = …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc spring-security

5
推荐指数
1
解决办法
5206
查看次数

标签 统计

java ×1

spring ×1

spring-mvc ×1

spring-security ×1