From 56df98ce4952239fbf7d0e99dbeb0e5c71531d6f Mon Sep 17 00:00:00 2001
From: sean.zhou <sean.zhou@dji.com>
Date: Fri, 18 Nov 2022 18:29:06 +0800
Subject: [PATCH] initial v1.3.0
---
src/main/java/com/dji/sample/manage/service/impl/UserServiceImpl.java | 19 +++++++++++++++++--
1 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/dji/sample/manage/service/impl/UserServiceImpl.java b/src/main/java/com/dji/sample/manage/service/impl/UserServiceImpl.java
index 8f3df63..746fe99 100644
--- a/src/main/java/com/dji/sample/manage/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/dji/sample/manage/service/impl/UserServiceImpl.java
@@ -1,6 +1,8 @@
package com.dji.sample.manage.service.impl;
import com.auth0.jwt.JWT;
+import com.auth0.jwt.exceptions.TokenExpiredException;
+import com.auth0.jwt.interfaces.DecodedJWT;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -29,6 +31,7 @@
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.List;
+import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
@@ -115,10 +118,22 @@
if (!StringUtils.hasText(token)) {
return Optional.empty();
}
- CustomClaim customClaim = new CustomClaim(JWT.decode(token).getClaims());
+ CustomClaim customClaim;
+ try {
+ DecodedJWT jwt = JwtUtil.verifyToken(token);
+ customClaim = new CustomClaim(jwt.getClaims());
+ } catch (TokenExpiredException e) {
+ customClaim = new CustomClaim(JWT.decode(token).getClaims());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return Optional.empty();
+ }
String refreshToken = JwtUtil.createToken(customClaim.convertToMap());
UserDTO user = entityConvertToDTO(this.getUserByUsername(customClaim.getUsername()));
+ if (Objects.isNull(user)) {
+ return Optional.empty();
+ }
user.setWorkspaceId(customClaim.getWorkspaceId());
user.setAccessToken(refreshToken);
return Optional.of(user);
@@ -195,7 +210,7 @@
*/
private UserDTO entityConvertToDTO(UserEntity entity) {
if (entity == null) {
- return new UserDTO();
+ return null;
}
return UserDTO.builder()
.userId(entity.getUserId())
--
Gitblit v1.9.3