From 8444084e6aa11efa23287e7f82474ac22378a5c4 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 01 四月 2025 16:03:19 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- 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