184 lines
3.7 KiB
Java
184 lines
3.7 KiB
Java
package com.qiaoba.auth.entity;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
import com.qiaoba.auth.entity.dto.RoleDto;
|
|
import org.springframework.security.core.GrantedAuthority;
|
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
|
import org.springframework.security.core.userdetails.UserDetails;
|
|
|
|
import java.util.Collection;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
import java.util.stream.Collectors;
|
|
|
|
/**
|
|
* 登录用户身份权限
|
|
*
|
|
* @author ailanyin
|
|
* @version 1.0
|
|
* @since 2021/10/15 0015 上午 10:05
|
|
*/
|
|
public class LoginUser implements UserDetails {
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
/**
|
|
* 用户ID
|
|
*/
|
|
private String userId;
|
|
|
|
/**
|
|
* 部门ID
|
|
*/
|
|
private String deptId;
|
|
|
|
/**
|
|
* 登录账号
|
|
*/
|
|
private String username;
|
|
|
|
/**
|
|
* 用户名称
|
|
*/
|
|
private String nickname;
|
|
|
|
|
|
/**
|
|
* 角色列表
|
|
*/
|
|
private List<String> roleKeys;
|
|
|
|
|
|
/**
|
|
* 权限列表
|
|
*/
|
|
private Set<String> permissions;
|
|
|
|
private List<RoleDto> roles;
|
|
|
|
public LoginUser() {
|
|
}
|
|
|
|
public LoginUser(String userId, String deptId, String username, String nickname, List<RoleDto> roles, List<String> roleKeys, Set<String> permissions) {
|
|
this.userId = userId;
|
|
this.deptId = deptId;
|
|
this.username = username;
|
|
this.permissions = permissions;
|
|
this.nickname = nickname;
|
|
this.roleKeys = roleKeys;
|
|
this.roles = roles;
|
|
}
|
|
|
|
public List<RoleDto> getRoles() {
|
|
return roles;
|
|
}
|
|
|
|
public void setRoles(List<RoleDto> roles) {
|
|
this.roles = roles;
|
|
}
|
|
|
|
public String getUserId() {
|
|
return userId;
|
|
}
|
|
|
|
public void setUserId(String userId) {
|
|
this.userId = userId;
|
|
}
|
|
|
|
public String getDeptId() {
|
|
return deptId;
|
|
}
|
|
|
|
public void setDeptId(String deptId) {
|
|
this.deptId = deptId;
|
|
}
|
|
|
|
|
|
public List<String> getRoleKeys() {
|
|
return roleKeys;
|
|
}
|
|
|
|
public void setRoleKeys(List<String> roleKeys) {
|
|
this.roleKeys = roleKeys;
|
|
}
|
|
|
|
public Set<String> getPermissions() {
|
|
return permissions;
|
|
}
|
|
|
|
public void setPermissions(Set<String> permissions) {
|
|
this.permissions = permissions;
|
|
}
|
|
|
|
public String getNickname() {
|
|
return nickname;
|
|
}
|
|
|
|
public void setNickname(String nickname) {
|
|
this.nickname = nickname;
|
|
}
|
|
|
|
public void setUsername(String username) {
|
|
this.username = username;
|
|
}
|
|
|
|
|
|
@Override
|
|
public String getUsername() {
|
|
return this.username;
|
|
}
|
|
|
|
@Override
|
|
public String getPassword() {
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* 账户是否未过期,过期无法验证
|
|
*/
|
|
@Override
|
|
public boolean isAccountNonExpired() {
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* 指定用户是否解锁,锁定的用户无法进行身份验证
|
|
*/
|
|
@Override
|
|
public boolean isAccountNonLocked() {
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* 指示是否已过期的用户的凭据(密码),过期的凭据防止认证
|
|
*
|
|
* @return boolean
|
|
*/
|
|
@Override
|
|
public boolean isCredentialsNonExpired() {
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* 是否可用 ,禁用的用户不能身份验证
|
|
*
|
|
* @return boolean
|
|
*/
|
|
@Override
|
|
public boolean isEnabled() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
@JsonIgnore
|
|
public Collection<? extends GrantedAuthority> getAuthorities() {
|
|
//返回当前用户的权限
|
|
return permissions.stream()
|
|
.filter(StrUtil::isNotBlank)
|
|
.map(SimpleGrantedAuthority::new)
|
|
.collect(Collectors.toList());
|
|
}
|
|
|
|
}
|