173 lines
3.4 KiB
Java
173 lines
3.4 KiB
Java
|
package com.qiaoba.auth.entity;
|
||
|
|
||
|
import cn.hutool.core.util.StrUtil;
|
||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||
|
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> roleIds;
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 权限列表
|
||
|
*/
|
||
|
private Set<String> permissions;
|
||
|
|
||
|
|
||
|
public LoginUser() {
|
||
|
}
|
||
|
|
||
|
public LoginUser(String userId, String deptId, String username, String nickname, List<String> roleIds, Set<String> permissions) {
|
||
|
this.userId = userId;
|
||
|
this.deptId = deptId;
|
||
|
this.username = username;
|
||
|
this.permissions = permissions;
|
||
|
this.nickname = nickname;
|
||
|
this.roleIds = roleIds;
|
||
|
}
|
||
|
|
||
|
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> getRoleIds() {
|
||
|
return roleIds;
|
||
|
}
|
||
|
|
||
|
public void setRoleIds(List<String> roleIds) {
|
||
|
this.roleIds = roleIds;
|
||
|
}
|
||
|
|
||
|
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());
|
||
|
}
|
||
|
|
||
|
}
|