| | |
| | | package com.ruoyi.common.core.domain.model;
|
| | |
|
| | | import java.util.Collection;
|
| | | import java.util.Set;
|
| | | import org.springframework.security.core.GrantedAuthority;
|
| | | import org.springframework.security.core.userdetails.UserDetails;
|
| | | import com.fasterxml.jackson.annotation.JsonIgnore;
|
| | | import com.ruoyi.common.core.domain.entity.SysUser;
|
| | |
|
| | | /**
|
| | | * 登录用户身份权限
|
| | | * |
| | | * @author ruoyi
|
| | | */
|
| | | public class LoginUser implements UserDetails
|
| | | {
|
| | | private static final long serialVersionUID = 1L;
|
| | |
|
| | | /**
|
| | | * 用户唯一标识
|
| | | */
|
| | | private String token;
|
| | |
|
| | | /**
|
| | | * 登录时间
|
| | | */
|
| | | private Long loginTime;
|
| | |
|
| | | /**
|
| | | * 过期时间
|
| | | */
|
| | | private Long expireTime;
|
| | |
|
| | | /**
|
| | | * 登录IP地址
|
| | | */
|
| | | private String ipaddr;
|
| | |
|
| | | /**
|
| | | * 登录地点
|
| | | */
|
| | | private String loginLocation;
|
| | |
|
| | | /**
|
| | | * 浏览器类型
|
| | | */
|
| | | private String browser;
|
| | |
|
| | | /**
|
| | | * 操作系统
|
| | | */
|
| | | private String os;
|
| | |
|
| | | /**
|
| | | * 权限列表
|
| | | */
|
| | | private Set<String> permissions;
|
| | |
|
| | | /**
|
| | | * 用户信息
|
| | | */
|
| | | private SysUser user;
|
| | |
|
| | | public String getToken()
|
| | | {
|
| | | return token;
|
| | | }
|
| | |
|
| | | public void setToken(String token)
|
| | | {
|
| | | this.token = token;
|
| | | }
|
| | |
|
| | | public LoginUser()
|
| | | {
|
| | | }
|
| | |
|
| | | public LoginUser(SysUser user, Set<String> permissions)
|
| | | {
|
| | | this.user = user;
|
| | | this.permissions = permissions;
|
| | | }
|
| | |
|
| | | @JsonIgnore
|
| | | @Override
|
| | | public String getPassword()
|
| | | {
|
| | | return user.getPassword();
|
| | | }
|
| | |
|
| | | @Override
|
| | | public String getUsername()
|
| | | {
|
| | | return user.getUserName();
|
| | | }
|
| | |
|
| | | /**
|
| | | * 账户是否未过期,过期无法验证
|
| | | */
|
| | | @JsonIgnore
|
| | | @Override
|
| | | public boolean isAccountNonExpired()
|
| | | {
|
| | | return true;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 指定用户是否解锁,锁定的用户无法进行身份验证
|
| | | * |
| | | * @return
|
| | | */
|
| | | @JsonIgnore
|
| | | @Override
|
| | | public boolean isAccountNonLocked()
|
| | | {
|
| | | return true;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 指示是否已过期的用户的凭据(密码),过期的凭据防止认证
|
| | | * |
| | | * @return
|
| | | */
|
| | | @JsonIgnore
|
| | | @Override
|
| | | public boolean isCredentialsNonExpired()
|
| | | {
|
| | | return true;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 是否可用 ,禁用的用户不能身份验证
|
| | | * |
| | | * @return
|
| | | */
|
| | | @JsonIgnore
|
| | | @Override
|
| | | public boolean isEnabled()
|
| | | {
|
| | | return true;
|
| | | }
|
| | |
|
| | | public Long getLoginTime()
|
| | | {
|
| | | return loginTime;
|
| | | }
|
| | |
|
| | | public void setLoginTime(Long loginTime)
|
| | | {
|
| | | this.loginTime = loginTime;
|
| | | }
|
| | |
|
| | | public String getIpaddr()
|
| | | {
|
| | | return ipaddr;
|
| | | }
|
| | |
|
| | | public void setIpaddr(String ipaddr)
|
| | | {
|
| | | this.ipaddr = ipaddr;
|
| | | }
|
| | |
|
| | | public String getLoginLocation()
|
| | | {
|
| | | return loginLocation;
|
| | | }
|
| | |
|
| | | public void setLoginLocation(String loginLocation)
|
| | | {
|
| | | this.loginLocation = loginLocation;
|
| | | }
|
| | |
|
| | | public String getBrowser()
|
| | | {
|
| | | return browser;
|
| | | }
|
| | |
|
| | | public void setBrowser(String browser)
|
| | | {
|
| | | this.browser = browser;
|
| | | }
|
| | |
|
| | | public String getOs()
|
| | | {
|
| | | return os;
|
| | | }
|
| | |
|
| | | public void setOs(String os)
|
| | | {
|
| | | this.os = os;
|
| | | }
|
| | |
|
| | | public Long getExpireTime()
|
| | | {
|
| | | return expireTime;
|
| | | }
|
| | |
|
| | | public void setExpireTime(Long expireTime)
|
| | | {
|
| | | this.expireTime = expireTime;
|
| | | }
|
| | |
|
| | | public Set<String> getPermissions()
|
| | | {
|
| | | return permissions;
|
| | | }
|
| | |
|
| | | public void setPermissions(Set<String> permissions)
|
| | | {
|
| | | this.permissions = permissions;
|
| | | }
|
| | |
|
| | | public SysUser getUser()
|
| | | {
|
| | | return user;
|
| | | }
|
| | |
|
| | | public void setUser(SysUser user)
|
| | | {
|
| | | this.user = user;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public Collection<? extends GrantedAuthority> getAuthorities()
|
| | | {
|
| | | return null;
|
| | | }
|
| | | }
|
| | | package com.ruoyi.common.core.domain.model; |
| | | |
| | | import com.ruoyi.common.core.domain.dto.RoleDTO; |
| | | import com.ruoyi.common.helper.LoginHelper; |
| | | import lombok.Data; |
| | | import lombok.NoArgsConstructor; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | |
| | | /** |
| | | * 登录用户身份权限 |
| | | * |
| | | * @author Lion Li |
| | | */ |
| | | |
| | | @Data |
| | | @NoArgsConstructor |
| | | public class LoginUser implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 用户ID |
| | | */ |
| | | private Long userId; |
| | | |
| | | /** |
| | | * 部门ID |
| | | */ |
| | | private Long deptId; |
| | | |
| | | /** |
| | | * 部门名 |
| | | */ |
| | | private String deptName; |
| | | |
| | | /** |
| | | * 用户唯一标识 |
| | | */ |
| | | private String token; |
| | | |
| | | /** |
| | | * 用户类型 |
| | | */ |
| | | private String userType; |
| | | |
| | | /** |
| | | * 登录时间 |
| | | */ |
| | | private Long loginTime; |
| | | |
| | | /** |
| | | * 过期时间 |
| | | */ |
| | | private Long expireTime; |
| | | |
| | | /** |
| | | * 登录IP地址 |
| | | */ |
| | | private String ipaddr; |
| | | |
| | | /** |
| | | * 登录地点 |
| | | */ |
| | | private String loginLocation; |
| | | |
| | | /** |
| | | * 浏览器类型 |
| | | */ |
| | | private String browser; |
| | | |
| | | /** |
| | | * 操作系统 |
| | | */ |
| | | private String os; |
| | | |
| | | /** |
| | | * 菜单权限 |
| | | */ |
| | | private Set<String> menuPermission; |
| | | |
| | | /** |
| | | * 角色权限 |
| | | */ |
| | | private Set<String> rolePermission; |
| | | |
| | | /** |
| | | * 用户名 |
| | | */ |
| | | private String username; |
| | | |
| | | /** |
| | | * 角色对象 |
| | | */ |
| | | private List<RoleDTO> roles; |
| | | |
| | | /** |
| | | * 数据权限 当前角色ID |
| | | */ |
| | | private Long roleId; |
| | | |
| | | /** |
| | | * 获取登录id |
| | | */ |
| | | public String getLoginId() { |
| | | if (userType == null) { |
| | | throw new IllegalArgumentException("用户类型不能为空"); |
| | | } |
| | | if (userId == null) { |
| | | throw new IllegalArgumentException("用户ID不能为空"); |
| | | } |
| | | return userType + LoginHelper.JOIN_CODE + userId; |
| | | } |
| | | |
| | | } |