From 569ccbaa7bd63768ed5efada1f0c9967264782d4 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期三, 30 八月 2023 18:36:14 +0800
Subject: [PATCH] bug
---
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java | 31 ++++++++++++++++++++++++++-----
1 files changed, 26 insertions(+), 5 deletions(-)
diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
index 6de0ec3..7bcd8c1 100644
--- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
+++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
@@ -21,6 +21,8 @@
import io.jsonwebtoken.Claims;
import reactor.core.publisher.Mono;
+import javax.annotation.Resource;
+
/**
* 网关鉴权
*
@@ -35,7 +37,7 @@
@Autowired
private IgnoreWhiteProperties ignoreWhite;
- @Autowired
+ @Resource
private RedisService redisService;
@@ -44,22 +46,41 @@
{
ServerHttpRequest request = exchange.getRequest();
ServerHttpRequest.Builder mutate = request.mutate();
-
String url = request.getURI().getPath();
+ log.info("requestUrl---"+url);
// 跳过不需要验证的路径
if (StringUtils.matches(url, ignoreWhite.getWhites()))
{
+ //附近商户获取
+ if(url.contains("getNearbyShop")||url.contains("pageRecommendGoods")||url.contains("pageActivityGoods")||url.contains("getGoodsInfo")||url.contains("getShopInfo")||url.contains("pageAppActivityGoods")){
+ String token = getToken(request);
+ if(!StringUtils.isEmpty(token)){
+ Claims claims = JwtUtils.parseToken(token);
+ if(claims!=null){
+ String userid = JwtUtils.getUserId(claims);
+ String userkey = JwtUtils.getUserKey(claims);
+ String username = JwtUtils.getUserName(claims);
+ if(!StringUtils.isEmpty(userid)){
+ addHeader(mutate, SecurityConstants.USER_KEY, userkey);
+ addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid);
+ addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username);
+ }
+ }
+ }
+
+ }
return chain.filter(exchange);
}
String token = getToken(request);
+ log.info("requestToken---"+token);
if (StringUtils.isEmpty(token))
{
- return unauthorizedResponse(exchange, "令牌不能为空");
+ return unauthorizedResponse(exchange, "需要先登录才能使用该功能");
}
Claims claims = JwtUtils.parseToken(token);
if (claims == null)
{
- return unauthorizedResponse(exchange, "令牌已过期或验证不正确!");
+ return unauthorizedResponse(exchange, "需要先登录才能使用该功能!");
}
String userkey = JwtUtils.getUserKey(claims);
boolean islogin = redisService.hasKey(getTokenKey(userkey));
@@ -71,7 +92,7 @@
String username = JwtUtils.getUserName(claims);
if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username))
{
- return unauthorizedResponse(exchange, "令牌验证失败");
+ return unauthorizedResponse(exchange, "登录验证失败");
}
// 设置用户信息到请求
--
Gitblit v1.7.1