From afa0dbb4f54e7244835dd67ec33c3e545f122f71 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 17 一月 2025 16:40:43 +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