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