UserDetailsService
认识userdetailsservice

如图所示,Authentication Filter将身份验证请求委托给AuthenticationManager,后者使用AuthenticationProvider处理身份验证。
Authentication Provider
使用UserDetailsService
来实现用户管理职责。它的主要职责是根据用户名从内存中或数据库中查找用户。
认识userdetails
UserDetails是Spring Security框架中的一个核心接口,用于表示用户的详细信息。
UserDetails接口主要用于封装从数据库中加载的用户详细信息。这些属性包括用户名、密码、权限、账户状态等,确保用户信息的安全性和完整性。
java
@Data
public class LoginUser implements UserDetails {
/**
* 用户ID
*/
private String useNo;
/**
* 用户信息
*/
private SysUser user;
/**
* 权限列表
*/
private Set<String> permissions;
public LoginUser(String useNo, SysUser user, Set<String> permissions)
{
this.useNo = useNo;
this.user = user;
this.permissions = permissions;
}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return null;
}
@Override
public String getPassword() {
return user.getPassword();
}
@Override
public String getUsername() {
return user.getUseName();
}
/**
* 账户是否未过期,过期无法验证
*/
@Override
public boolean isAccountNonExpired() {
return true;
}
/**
* 指定用户是否解锁,锁定的用户无法进行身份验证
*
* @return
*/
@Override
public boolean isAccountNonLocked() {
return true;
}
/**
* 指示是否已过期的用户的凭据(密码),过期的凭据防止认证
*
* @return
*/
@Override
public boolean isCredentialsNonExpired() {
return true;
}
/**
* 是否可用 ,禁用的用户不能身份验证
*
* @return
*/
@Override
public boolean isEnabled() {
return true;
}
}