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 | 51 +++++++++++++++++++++++++++++++-------------------- 1 files changed, 31 insertions(+), 20 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 c92d2d1..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 @@ -1,5 +1,14 @@ package com.ruoyi.gateway.filter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.gateway.filter.GatewayFilterChain; +import org.springframework.cloud.gateway.filter.GlobalFilter; +import org.springframework.core.Ordered; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.stereotype.Component; +import org.springframework.web.server.ServerWebExchange; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.HttpStatus; import com.ruoyi.common.core.constant.SecurityConstants; @@ -10,15 +19,6 @@ import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.gateway.config.properties.IgnoreWhiteProperties; import io.jsonwebtoken.Claims; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.gateway.filter.GatewayFilterChain; -import org.springframework.cloud.gateway.filter.GlobalFilter; -import org.springframework.core.Ordered; -import org.springframework.http.server.reactive.ServerHttpRequest; -import org.springframework.stereotype.Component; -import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; import javax.annotation.Resource; @@ -46,29 +46,38 @@ { ServerHttpRequest request = exchange.getRequest(); ServerHttpRequest.Builder mutate = request.mutate(); - String url = request.getURI().getPath(); log.info("requestUrl---"+url); - String token = getToken(request); - Claims claims = null; - String userid = null; - if(StringUtils.isNotBlank(token)){ - claims = JwtUtils.parseToken(token); - if(claims!=null){ - userid = JwtUtils.getUserId(claims); - addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid); - } - } // 跳过不需要验证的路径 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, "需要先登录才能使用该功能"); } + Claims claims = JwtUtils.parseToken(token); if (claims == null) { return unauthorizedResponse(exchange, "需要先登录才能使用该功能!"); @@ -79,11 +88,13 @@ { return unauthorizedResponse(exchange, "登录状态已过期"); } + String userid = JwtUtils.getUserId(claims); String username = JwtUtils.getUserName(claims); if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) { return unauthorizedResponse(exchange, "登录验证失败"); } + // 设置用户信息到请求 addHeader(mutate, SecurityConstants.USER_KEY, userkey); addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid); -- Gitblit v1.7.1