UserDetails的自定义实现示例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UserDetails的自定义实现示例相关的知识,希望对你有一定的参考价值。
我正在寻找一个在Spring Security 3中制作自定义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 + "]";
}
}
以上是关于UserDetails的自定义实现示例的主要内容,如果未能解决你的问题,请参考以下文章
自定义 SAMLUserDetailsService 未填充自定义 UserDetails
如何创建数据类实现 Spring Security 特定的 UserDetails
带有 JWT 自定义 UserDetails 的 Spring OAuth - 在 JwtAccessTokenConverter 中设置主体