From 6f30b5c886cd05081d6250eb0506816fb2ac80ec Mon Sep 17 00:00:00 2001
From: lidongdong <1459917685@qq.com>
Date: 星期二, 22 十一月 2022 14:11:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/huacheng_test' into huacheng_test
---
flower_city/src/main/java/com/dg/core/manager/RedisTokenManager.java | 63 ++++++++++++++++++++++++++++---
1 files changed, 56 insertions(+), 7 deletions(-)
diff --git a/flower_city/src/main/java/com/dg/core/manager/RedisTokenManager.java b/flower_city/src/main/java/com/dg/core/manager/RedisTokenManager.java
index fd6a87c..e5e39ef 100644
--- a/flower_city/src/main/java/com/dg/core/manager/RedisTokenManager.java
+++ b/flower_city/src/main/java/com/dg/core/manager/RedisTokenManager.java
@@ -1,12 +1,15 @@
package com.dg.core.manager;
import com.dg.core.Constant;
+import io.jsonwebtoken.Claims;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.script.DigestUtils;
import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
@@ -15,8 +18,8 @@
* 通过Redis存储和验证token的实现类
*/
@Component
-public class RedisTokenManager implements TokenManager {
-
+public class RedisTokenManager implements TokenManager
+{
private RedisTemplate<String, String> redis;
@Qualifier("redisTemplate")
@@ -28,7 +31,7 @@
}
@Override
- public String createToken(long userId, long userRole) {
+ public String createToken(String userId, String userRole) {
//使用uuid作为源token
String uuid = UUID.randomUUID().toString().replace("-", "");
String token = DigestUtils.sha1DigestAsHex(uuid + userId + "e23ktjsdf") + "-" + userRole;
@@ -38,9 +41,8 @@
return token;
}
-
public boolean checkToken(String token) {
- if (token == null) {
+ if (StringUtils.isEmpty(token)) {
return false;
}
String userId = redis.boundValueOps(token).get();
@@ -49,6 +51,30 @@
}
//如果验证成功,说明此用户进行了一次有效操作,延长token的过期时间
redis.boundValueOps(token).expire(Constant.TOKEN_EXPIRES_HOUR, TimeUnit.HOURS);
+ return true;
+ }
+
+
+ /**
+ * 验证花城token
+ * @param token
+ * @return
+ */
+ @Override
+ public boolean checkHCToken(String token) {
+ if (StringUtils.isEmpty(token)) {
+ return false;
+ }
+ // token解析
+ Claims claims = JWTTokenUtil.getClaimsFromToken(token);
+ if (ObjectUtils.isEmpty(claims)) {
+ return false;
+ }
+ String userId = claims.getSubject();
+ if (ObjectUtils.isEmpty(userId))
+ {
+ return false;
+ }
return true;
}
@@ -62,13 +88,36 @@
return Long.parseLong(userId);
}
+ /**
+ * 获取花城e+的 UserId
+ * @param token
+ * @return
+ */
+ @Override
+ public long getHCUserId(String token) {
+ if (token == null) {
+ return -1;
+ }
+ // token解析
+ Claims claims = JWTTokenUtil.getClaimsFromToken(token);
+ if (ObjectUtils.isEmpty(claims)) {
+ return -1;
+ }
+ String userId = claims.getSubject();
+ if (ObjectUtils.isEmpty(userId))
+ {
+ return -1;
+ }
+ return Long.parseLong(userId);
+ }
+
public void deleteToken(String token) {
redis.delete(token);
}
@Override
- public String getTokenByUserId(long userId) {
- return redis.boundValueOps(String.valueOf(userId)).get();
+ public String getTokenByUserId(String userId) {
+ return redis.boundValueOps(userId).get();
}
}
--
Gitblit v1.7.1