|
@@ -21,7 +21,7 @@ import java.util.Arrays;
|
|
|
|
|
|
/**
|
|
/**
|
|
* JWT Token
|
|
* JWT Token
|
|
- *
|
|
|
|
|
|
+ * <p>
|
|
* 续签逻辑:
|
|
* 续签逻辑:
|
|
* 登录成功后,用户在未过期时间内继续操作,续签token。
|
|
* 登录成功后,用户在未过期时间内继续操作,续签token。
|
|
* 登录成功后,空闲超过过期时间,返回token已失效,重新登录。
|
|
* 登录成功后,空闲超过过期时间,返回token已失效,重新登录。
|
|
@@ -43,25 +43,28 @@ public class TokenFilter implements WebFilter {
|
|
* 需要权限认证的接口路径
|
|
* 需要权限认证的接口路径
|
|
*/
|
|
*/
|
|
private static final String[] PERMISSION_URLS = new String[]{
|
|
private static final String[] PERMISSION_URLS = new String[]{
|
|
- "/user/club/info/update",
|
|
|
|
- "/user/shop/info/update",
|
|
|
|
- "/order/club/cart/add",
|
|
|
|
- "/order/club/cart/update",
|
|
|
|
- "/order/club/cart/delete",
|
|
|
|
- "/order/seller/cart/add",
|
|
|
|
- "/order/seller/cart/update",
|
|
|
|
- "/order/seller/cart/delete",
|
|
|
|
- "/order/club/confirm",
|
|
|
|
- "/order/club/cancel",
|
|
|
|
- "/order/club/delete",
|
|
|
|
- "/order/club/receive",
|
|
|
|
- "/order/club/second/payment/confirm",
|
|
|
|
- "/order/submit/generate",
|
|
|
|
- "/order/submit/recharge",
|
|
|
|
- "/order/pay/balance/deduction"
|
|
|
|
|
|
+ "/user/club/info/update",
|
|
|
|
+ "/user/shop/info/update",
|
|
|
|
+ "/commodity/shop/product/release",
|
|
|
|
+ "/commodity/shop/product/offline",
|
|
|
|
+ "/order/club/cart/add",
|
|
|
|
+ "/order/club/cart/update",
|
|
|
|
+ "/order/club/cart/delete",
|
|
|
|
+ "/order/seller/cart/add",
|
|
|
|
+ "/order/seller/cart/update",
|
|
|
|
+ "/order/seller/cart/delete",
|
|
|
|
+ "/order/club/confirm",
|
|
|
|
+ "/order/club/cancel",
|
|
|
|
+ "/order/club/delete",
|
|
|
|
+ "/order/club/receive",
|
|
|
|
+ "/order/club/second/payment/confirm",
|
|
|
|
+ "/order/submit/generate",
|
|
|
|
+ "/order/submit/recharge",
|
|
|
|
+ "/order/pay/balance/deduction"
|
|
};
|
|
};
|
|
|
|
|
|
private RedisService redisService;
|
|
private RedisService redisService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
public void setRedisService(RedisService redisService) {
|
|
public void setRedisService(RedisService redisService) {
|
|
this.redisService = redisService;
|
|
this.redisService = redisService;
|
|
@@ -86,7 +89,7 @@ public class TokenFilter implements WebFilter {
|
|
// token续签
|
|
// token续签
|
|
if (StringUtils.isNotBlank(cacheToken) && !"null".equals(cacheToken) && JwtUtil.isVerify(cacheToken)) {
|
|
if (StringUtils.isNotBlank(cacheToken) && !"null".equals(cacheToken) && JwtUtil.isVerify(cacheToken)) {
|
|
int userId = JwtUtil.parseTokenUid(cacheToken);
|
|
int userId = JwtUtil.parseTokenUid(cacheToken);
|
|
- log.debug("Token续签,UserId:"+userId+",Token:"+token);
|
|
|
|
|
|
+ log.debug("Token续签,UserId:" + userId + ",Token:" + token);
|
|
// 再次校验token有效性
|
|
// 再次校验token有效性
|
|
if (!JwtUtil.isVerify(cacheToken)) {
|
|
if (!JwtUtil.isVerify(cacheToken)) {
|
|
// 生成token
|
|
// 生成token
|
|
@@ -99,9 +102,9 @@ public class TokenFilter implements WebFilter {
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
// 需要验证的路径
|
|
// 需要验证的路径
|
|
- if(Arrays.asList(PERMISSION_URLS).contains(url)) {
|
|
|
|
|
|
+ if (Arrays.asList(PERMISSION_URLS).contains(url)) {
|
|
// Token失效
|
|
// Token失效
|
|
- log.error("Token失效,token:"+token+",cacheToken:"+cacheToken);
|
|
|
|
|
|
+ log.error("Token失效,token:" + token + ",cacheToken:" + cacheToken);
|
|
return tokenErrorResponse(response, "Token失效,请重新登录!");
|
|
return tokenErrorResponse(response, "Token失效,请重新登录!");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -121,7 +124,7 @@ public class TokenFilter implements WebFilter {
|
|
return chain.filter(exchange);
|
|
return chain.filter(exchange);
|
|
}
|
|
}
|
|
|
|
|
|
- private Mono<Void> tokenErrorResponse(ServerHttpResponse response, String responseMsg){
|
|
|
|
|
|
+ private Mono<Void> tokenErrorResponse(ServerHttpResponse response, String responseMsg) {
|
|
response.setStatusCode(HttpStatus.OK);
|
|
response.setStatusCode(HttpStatus.OK);
|
|
response.getHeaders().add("Content-Type", "application/json;charset=UTF-8");
|
|
response.getHeaders().add("Content-Type", "application/json;charset=UTF-8");
|
|
JSONObject res = new JSONObject();
|
|
JSONObject res = new JSONObject();
|