From 12c7674d534677d43edc097ca08bcb792fe4ed6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Thu, 15 Jan 2026 17:40:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81,=E4=BD=BF?= =?UTF-8?q?=E7=BD=91=E5=85=B3=E9=85=8D=E7=BD=AE=E7=99=BD=E5=90=8D=E5=8D=95?= =?UTF-8?q?=E4=BB=A5=E5=90=8E=EF=BC=8C=E9=A1=B5=E9=9D=A2=E4=B9=9F=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E6=AD=A3=E7=A1=AE=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/gateway/filter/AuthFilter.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java b/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java index 51d39ef..089ed91 100644 --- a/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java +++ b/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java @@ -49,7 +49,25 @@ public class AuthFilter implements GlobalFilter, Ordered // 跳过不需要验证的路径 if (StringUtils.matches(url, ignoreWhite.getWhites())) { - return chain.filter(exchange); + // 白名单路径也尝试解析token并传递用户信息(如果有token的话) + String token = getToken(request); + if (StringUtils.isNotEmpty(token)) + { + Claims claims = JwtUtils.parseToken(token); + if (claims != null) + { + String userkey = JwtUtils.getUserKey(claims); + String userid = JwtUtils.getUserId(claims); + String username = JwtUtils.getUserName(claims); + // 设置用户信息到请求 + addHeader(mutate, SecurityConstants.USER_KEY, userkey); + addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid); + addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username); + } + } + // 内部请求来源参数清除 + removeHeader(mutate, SecurityConstants.FROM_SOURCE); + return chain.filter(exchange.mutate().request(mutate.build()).build()); } String token = getToken(request); if (StringUtils.isEmpty(token))