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
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
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
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 | } | ... | ... |