对比新文件 |
| | |
| | | package com.iailab.framework.security.core; |
| | | |
| | | import cn.hutool.core.map.MapUtil; |
| | | import com.iailab.framework.common.enums.UserTypeEnum; |
| | | import com.fasterxml.jackson.annotation.JsonIgnore; |
| | | import lombok.Data; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 登录用户信息 |
| | | * |
| | | * @author iailab |
| | | */ |
| | | @Data |
| | | public class LoginUser { |
| | | |
| | | public static final String INFO_KEY_NICKNAME = "nickname"; |
| | | public static final String INFO_KEY_DEPT_ID = "deptId"; |
| | | |
| | | /** |
| | | * 用户编号 |
| | | */ |
| | | private Long id; |
| | | /** |
| | | * 用户类型 |
| | | * |
| | | * 关联 {@link UserTypeEnum} |
| | | */ |
| | | private Integer userType; |
| | | /** |
| | | * 额外的用户信息 |
| | | */ |
| | | private Map<String, String> info; |
| | | /** |
| | | * 租户编号 |
| | | */ |
| | | private Long tenantId; |
| | | /** |
| | | * 授权范围 |
| | | */ |
| | | private List<String> scopes; |
| | | /** |
| | | * 过期时间 |
| | | */ |
| | | private LocalDateTime expiresTime; |
| | | /** |
| | | * 访问令牌 |
| | | */ |
| | | private String accessToken; |
| | | |
| | | // ========== 上下文 ========== |
| | | /** |
| | | * 上下文字段,不进行持久化 |
| | | * |
| | | * 1. 用于基于 LoginUser 维度的临时缓存 |
| | | */ |
| | | @JsonIgnore |
| | | private Map<String, Object> context; |
| | | |
| | | public void setContext(String key, Object value) { |
| | | if (context == null) { |
| | | context = new HashMap<>(); |
| | | } |
| | | context.put(key, value); |
| | | } |
| | | |
| | | public <T> T getContext(String key, Class<T> type) { |
| | | return MapUtil.get(context, key, type); |
| | | } |
| | | |
| | | } |