Commit a31dd243991b48562c844fad67da924e9ec936f9

Authored by YunaiV
1 parent 002daeae

【功能优化】全局:LoginUser 新增过期时间,方便判断 token 过期

yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/NumberSerializer.java renamed to yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/NumberSerializer.java
1   -package cn.iocoder.yudao.framework.jackson.core.databind;
  1 +package cn.iocoder.yudao.framework.common.util.json.databind;
2 2  
3 3 import com.fasterxml.jackson.core.JsonGenerator;
4 4 import com.fasterxml.jackson.databind.SerializerProvider;
... ...
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/TimestampLocalDateTimeDeserializer.java renamed to yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/TimestampLocalDateTimeDeserializer.java
1   -package cn.iocoder.yudao.framework.jackson.core.databind;
  1 +package cn.iocoder.yudao.framework.common.util.json.databind;
2 2  
3 3 import com.fasterxml.jackson.core.JsonParser;
4 4 import com.fasterxml.jackson.databind.DeserializationContext;
... ...
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/TimestampLocalDateTimeSerializer.java renamed to yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/TimestampLocalDateTimeSerializer.java
1   -package cn.iocoder.yudao.framework.jackson.core.databind;
  1 +package cn.iocoder.yudao.framework.common.util.json.databind;
2 2  
3 3 import com.fasterxml.jackson.core.JsonGenerator;
4 4 import com.fasterxml.jackson.databind.JsonSerializer;
... ...
yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/LoginUser.java
... ... @@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
5 5 import com.fasterxml.jackson.annotation.JsonIgnore;
6 6 import lombok.Data;
7 7  
  8 +import java.time.LocalDateTime;
8 9 import java.util.HashMap;
9 10 import java.util.List;
10 11 import java.util.Map;
... ... @@ -42,6 +43,10 @@ public class LoginUser {
42 43 * 授权范围
43 44 */
44 45 private List<String> scopes;
  46 + /**
  47 + * 过期时间
  48 + */
  49 + private LocalDateTime expiresTime;
45 50  
46 51 // ========== 上下文 ==========
47 52 /**
... ...
yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/filter/TokenAuthenticationFilter.java
... ... @@ -84,7 +84,8 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter {
84 84 // 构建登录用户
85 85 return new LoginUser().setId(accessToken.getUserId()).setUserType(accessToken.getUserType())
86 86 .setInfo(accessToken.getUserInfo()) // 额外的用户信息
87   - .setTenantId(accessToken.getTenantId()).setScopes(accessToken.getScopes());
  87 + .setTenantId(accessToken.getTenantId()).setScopes(accessToken.getScopes())
  88 + .setExpiresTime(accessToken.getExpiresTime());
88 89 } catch (ServiceException serviceException) {
89 90 // 校验 Token 不通过时,考虑到一些接口是无需登录的,所以直接返回 null 即可
90 91 return null;
... ...
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/config/YudaoJacksonAutoConfiguration.java
... ... @@ -2,9 +2,9 @@ package cn.iocoder.yudao.framework.jackson.config;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
5   -import cn.iocoder.yudao.framework.jackson.core.databind.NumberSerializer;
6   -import cn.iocoder.yudao.framework.jackson.core.databind.TimestampLocalDateTimeDeserializer;
7   -import cn.iocoder.yudao.framework.jackson.core.databind.TimestampLocalDateTimeSerializer;
  5 +import cn.iocoder.yudao.framework.common.util.json.databind.NumberSerializer;
  6 +import cn.iocoder.yudao.framework.common.util.json.databind.TimestampLocalDateTimeDeserializer;
  7 +import cn.iocoder.yudao.framework.common.util.json.databind.TimestampLocalDateTimeSerializer;
8 8 import com.fasterxml.jackson.databind.ObjectMapper;
9 9 import com.fasterxml.jackson.databind.module.SimpleModule;
10 10 import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java
... ... @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.api.oauth2.dto;
3 3 import lombok.Data;
4 4  
5 5 import java.io.Serializable;
  6 +import java.time.LocalDateTime;
6 7 import java.util.List;
7 8 import java.util.Map;
8 9  
... ... @@ -34,5 +35,9 @@ public class OAuth2AccessTokenCheckRespDTO implements Serializable {
34 35 * 授权范围的数组
35 36 */
36 37 private List<String> scopes;
  38 + /**
  39 + * 过期时间
  40 + */
  41 + private LocalDateTime expiresTime;
37 42  
38 43 }
... ...