package com.sandu.ximon.admin.dto;
|
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.sandu.common.enums.AdminStatusStatus;
|
import com.sandu.ximon.dao.domain.Admin;
|
import lombok.Getter;
|
import org.springframework.security.core.GrantedAuthority;
|
import org.springframework.security.core.userdetails.UserDetails;
|
|
import java.util.Collection;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author chenjiantian
|
* @date 2021/4/23 17:45
|
*/
|
@Getter
|
public class AdminJwtUser implements UserDetails {
|
|
private final Admin user;
|
@JsonIgnore
|
private final Collection<GrantedAuthority> authorities;
|
|
public AdminJwtUser(Admin admin, Collection<GrantedAuthority> authorities) {
|
this.user = admin;
|
this.authorities = authorities;
|
|
}
|
|
public Collection<String> getRoles() {
|
return authorities.stream().map(GrantedAuthority::getAuthority).collect(Collectors.toSet());
|
}
|
|
@Override
|
public Collection<? extends GrantedAuthority> getAuthorities() {
|
return authorities;
|
}
|
|
@JsonIgnore
|
@Override
|
public String getPassword() {
|
return user.getPassword();
|
}
|
|
@Override
|
public String getUsername() {
|
return user.getUsername();
|
}
|
|
@JsonIgnore
|
@Override
|
public boolean isAccountNonExpired() {
|
return true;
|
}
|
|
@JsonIgnore
|
@Override
|
public boolean isAccountNonLocked() {
|
return true;
|
}
|
|
@JsonIgnore
|
@Override
|
public boolean isCredentialsNonExpired() {
|
return true;
|
}
|
|
@Override
|
public boolean isEnabled() {
|
return AdminStatusStatus.NORMAL.getCode().equals(user.getStatus());
|
}
|
}
|