Commit a31dd243991b48562c844fad67da924e9ec936f9
1 parent
002daeae
【功能优化】全局:LoginUser 新增过期时间,方便判断 token 过期
Showing
7 changed files
with
18 additions
and
7 deletions
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 | } |