手动判断access是否过期
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package com.njcn.gateway.filter;
|
package com.njcn.gateway.filter;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.json.JSONObject;
|
import cn.hutool.json.JSONObject;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
@@ -29,6 +30,7 @@ import reactor.core.publisher.Mono;
|
|||||||
|
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -73,6 +75,11 @@ public class AuthGlobalFilter implements GlobalFilter, Ordered {
|
|||||||
JSONObject jsonObject = JSONUtil.parseObj(payload);
|
JSONObject jsonObject = JSONUtil.parseObj(payload);
|
||||||
String userIndex = jsonObject.getStr(SecurityConstants.USER_INDEX_KEY);
|
String userIndex = jsonObject.getStr(SecurityConstants.USER_INDEX_KEY);
|
||||||
String jti = jsonObject.getStr(SecurityConstants.JWT_JTI);
|
String jti = jsonObject.getStr(SecurityConstants.JWT_JTI);
|
||||||
|
String exp = jsonObject.getStr(SecurityConstants.JWT_EXP);
|
||||||
|
LocalDateTime expTime = LocalDateTimeUtil.of(Long.parseLong(exp + "000"));
|
||||||
|
if(expTime.isAfter(LocalDateTimeUtil.now())){
|
||||||
|
return ResponseUtils.writeErrorInfo(response, GateWayEnum.ACCESS_TOKEN_EXPIRE_JWT);
|
||||||
|
}
|
||||||
String blackUserKey = SecurityConstants.TOKEN_BLACKLIST_PREFIX + userIndex;
|
String blackUserKey = SecurityConstants.TOKEN_BLACKLIST_PREFIX + userIndex;
|
||||||
List<UserTokenInfo> blackUsers = (List<UserTokenInfo>) redisUtil.getObjectByKey(blackUserKey);
|
List<UserTokenInfo> blackUsers = (List<UserTokenInfo>) redisUtil.getObjectByKey(blackUserKey);
|
||||||
if (CollectionUtils.isNotEmpty(blackUsers)) {
|
if (CollectionUtils.isNotEmpty(blackUsers)) {
|
||||||
@@ -96,4 +103,5 @@ public class AuthGlobalFilter implements GlobalFilter, Ordered {
|
|||||||
public int getOrder() {
|
public int getOrder() {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user