Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring UserDetails的自定义实现示例_Spring_Spring Security - Fatal编程技术网

Spring UserDetails的自定义实现示例

Spring UserDetails的自定义实现示例,spring,spring-security,Spring,Spring Security,我正在寻找在SpringSecurity3中创建自定义UserDetails对象的示例。 我希望有人能帮忙,谢谢。以下是我用过的: public class CustomUserDetails implements UserDetails { private User user; public CustomUserDetails(final User _user) { this.user = _user; } public Custo

我正在寻找在SpringSecurity3中创建自定义
UserDetails
对象的示例。 我希望有人能帮忙,谢谢。

以下是我用过的:

public class CustomUserDetails implements UserDetails {
    private  User user;

    public CustomUserDetails(final User _user) {
            this.user = _user;
    }

    public CustomUserDetails() {
    }

    @Override
    public Collection<GrantedAuthority> getAuthorities() {
             final Set<GrantedAuthority> _grntdAuths = new HashSet<GrantedAuthority>();

     List<UserRole> _roles = null;

     if (user!=null) {
             _roles = user.getRoles();
     }

     if (_roles!=null) {
             for (UserRole _role : _roles) {
                     _grntdAuths.add(new GrantedAuthorityImpl(_role.getRole()));
             }
     }

     return _grntdAuths;
    }

    @Override
    public String getPassword() {
            return user.getPassword();
    }
 @Override
    public String getUsername() {
            if (this.user == null) {
                    return null;
            }
            return this.user.getUser_name();
    }

    @Override
    public boolean isAccountNonExpired() {
            return this.user.isAccountNonExpired();
    }

    @Override
    public boolean isAccountNonLocked() {
            return this.user.isAccountNonLocked();
    }

    @Override
    public boolean isCredentialsNonExpired() {
            return this.user.isCredentialsNonExpired();
    }

    @Override
    public boolean isEnabled() {
            return this.user.isEnabled();
    }

    public User getUser() {
            return user;
    }

    @Override
    public String toString() {
            return "CustomUserDetails [user=" + user + "]";
    }
}
公共类CustomUserDetails实现UserDetails{
私人用户;
公共CustomUserDetails(最终用户_用户){
this.user=\u user;
}
公共CustomUserDetails(){
}
@凌驾
公共收集机构(){
最终集_grntdAuths=新哈希集();
列表_角色=null;
如果(用户!=null){
_roles=user.getRoles();
}
如果(_角色!=null){
for(用户角色_角色:_角色){
_add(新的GrantedAuthorityImpl(_role.getRole());
}
}
返回_grntdAuths;
}
@凌驾
公共字符串getPassword(){
返回user.getPassword();
}
@凌驾
公共字符串getUsername(){
if(this.user==null){
返回null;
}
返回此.user.getUser_name();
}
@凌驾
公共布尔值IsAccountNoExpired(){
返回此.user.isAccountNoneExpired();
}
@凌驾
公共布尔值isAccountNonLocked(){
返回此.user.isAccountNonLocked();
}
@凌驾
公共布尔值isCredentialsNonExpired(){
返回此.user.isCredentialsNonExpired();
}
@凌驾
公共布尔值isEnabled(){
返回此.user.isEnabled();
}
公共用户getUser(){
返回用户;
}
@凌驾
公共字符串toString(){
返回“CustomUserDetails[user=“+user+”]”;
}
}

btw,User是我的用户实体的普通bean如果您阅读了UserDetails规范,它要求您实现getAuthorities()、isEnabled()等方法。这些应该是与用户相关的详细信息,我在我的用户bean上有。