| package com.genersoft.iot.vmp.conf.security.dto; | 
|   | 
| 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 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(); | 
|     } | 
| } |