package com.sandu.common.security;
|
|
import cn.hutool.core.util.StrUtil;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.sandu.common.enums.AdminStatusStatus;
|
import lombok.Data;
|
import org.springframework.security.core.GrantedAuthority;
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
import org.springframework.security.core.userdetails.UserDetails;
|
|
import java.util.Arrays;
|
import java.util.Collection;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author chenjiantian
|
* @date 2022/1/8 16:22
|
* 登录用户的信息
|
*/
|
@Data
|
public class LoginUserInfo implements UserDetails {
|
|
private Long userId;
|
private String account;
|
private String name;
|
private String token;
|
private String role;
|
/**
|
* 用户权限 用,分隔
|
*/
|
private String permission;
|
/**
|
* 0 "禁用", 1 "正常" ,2:token 过期 3:未找到用户信息 4:在其它地方登录 5:IP限制 6:token 解析失败
|
*/
|
private Integer status;
|
private Long createTimestamp;
|
|
private String ip;
|
// 管理员类型,管理员 0官方管理员,1客户管理员 。查看AdministratorEnums
|
private Integer administratorType;
|
|
@JsonIgnore
|
@Override
|
public Collection<? extends GrantedAuthority> getAuthorities() {
|
if (StrUtil.isBlank(permission)) {
|
return null;
|
}
|
return Arrays.stream(permission.split(","))
|
.map(SimpleGrantedAuthority::new)
|
.collect(Collectors.toList());
|
}
|
@JsonIgnore
|
@Override
|
public String getPassword() {
|
return null;
|
}
|
@JsonIgnore
|
@Override
|
public String getUsername() {
|
return account;
|
}
|
@JsonIgnore
|
@Override
|
public boolean isAccountNonExpired() {
|
return true;
|
}
|
@JsonIgnore
|
@Override
|
public boolean isAccountNonLocked() {
|
return true;
|
}
|
@JsonIgnore
|
@Override
|
public boolean isCredentialsNonExpired() {
|
return true;
|
}
|
@JsonIgnore
|
@Override
|
public boolean isEnabled() {
|
return AdminStatusStatus.NORMAL.getCode().equals(status);
|
}
|
}
|