package com.genersoft.iot.vmp.conf.security.dto; 
 | 
  
 | 
import com.genersoft.iot.vmp.storager.dao.dto.Role; 
 | 
import com.genersoft.iot.vmp.storager.dao.dto.User; 
 | 
import org.springframework.security.core.CredentialsContainer; 
 | 
import org.springframework.security.core.GrantedAuthority; 
 | 
import org.springframework.security.core.SpringSecurityCoreVersion; 
 | 
import org.springframework.security.core.userdetails.UserDetails; 
 | 
  
 | 
import java.time.LocalDateTime; 
 | 
import java.util.Collection; 
 | 
  
 | 
public class LoginUser implements UserDetails, CredentialsContainer { 
 | 
  
 | 
    private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID; 
 | 
  
 | 
    /** 
 | 
     * 用户 
 | 
     */ 
 | 
    private User user; 
 | 
  
 | 
    private String accessToken; 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 登录时间 
 | 
     */ 
 | 
    private LocalDateTime loginTime; 
 | 
  
 | 
    public LoginUser(User user, LocalDateTime loginTime) { 
 | 
        this.user = user; 
 | 
        this.loginTime = loginTime; 
 | 
    } 
 | 
  
 | 
  
 | 
    @Override 
 | 
    public Collection<? extends GrantedAuthority> getAuthorities() { 
 | 
        return null; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public String getPassword() { 
 | 
        return user.getPassword(); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public String getUsername() { 
 | 
        return user.getUsername(); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 账户是否未过期,过期无法验证 
 | 
     */ 
 | 
    @Override 
 | 
    public boolean isAccountNonExpired() { 
 | 
        return true; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 指定用户是否解锁,锁定的用户无法进行身份验证 
 | 
     * <p> 
 | 
     * 密码锁定 
 | 
     * </p> 
 | 
     */ 
 | 
    @Override 
 | 
    public boolean isAccountNonLocked() { 
 | 
        return true; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 指示是否已过期的用户的凭据(密码),过期的凭据防止认证 
 | 
     */ 
 | 
    @Override 
 | 
    public boolean isCredentialsNonExpired() { 
 | 
        return true; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 用户是否被启用或禁用。禁用的用户无法进行身份验证。 
 | 
     */ 
 | 
    @Override 
 | 
    public boolean isEnabled() { 
 | 
        return true; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 认证完成后,擦除密码 
 | 
     */ 
 | 
    @Override 
 | 
    public void eraseCredentials() { 
 | 
        user.setPassword(null); 
 | 
    } 
 | 
  
 | 
  
 | 
    public int getId() { 
 | 
        return user.getId(); 
 | 
    } 
 | 
  
 | 
    public Role getRole() { 
 | 
        return user.getRole(); 
 | 
    } 
 | 
  
 | 
    public String getPushKey() { 
 | 
        return user.getPushKey(); 
 | 
    } 
 | 
  
 | 
    public String getAccessToken() { 
 | 
        return accessToken; 
 | 
    } 
 | 
  
 | 
    public void setAccessToken(String accessToken) { 
 | 
        this.accessToken = accessToken; 
 | 
    } 
 | 
} 
 |