From 008ffb622f7e8b941245a4cf19042c7baef39b24 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 21 九月 2026 10:21:32 +0800
Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/HongRuiTang
---
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java | 79 +++++++++++++++------------------------
1 files changed, 31 insertions(+), 48 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 7bcd8c1..3beaf52 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,6 @@
package com.ruoyi.gateway.filter;
+import com.alibaba.fastjson.JSON;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,12 +26,11 @@
/**
* 网关鉴权
- *
+ *
* @author jqs
*/
@Component
-public class AuthFilter implements GlobalFilter, Ordered
-{
+public class AuthFilter implements GlobalFilter, Ordered {
private static final Logger log = LoggerFactory.getLogger(AuthFilter.class);
// 排除过滤的 uri 地址,nacos自行添加
@@ -42,56 +42,47 @@
@Override
- public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain)
- {
+ public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
ServerHttpRequest request = exchange.getRequest();
ServerHttpRequest.Builder mutate = request.mutate();
String url = request.getURI().getPath();
- log.info("requestUrl---"+url);
+ log.info("requestUrl---" + url);
+ log.info("whiteUrl---" + JSON.toJSONString(ignoreWhite.getWhites()));
// 跳过不需要验证的路径
- 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);
- }
+ if (StringUtils.matches(url, ignoreWhite.getWhites())) {
+ 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))
- {
+ log.info("requestToken---" + token);
+ if (StringUtils.isEmpty(token)) {
return unauthorizedResponse(exchange, "需要先登录才能使用该功能");
}
Claims claims = JwtUtils.parseToken(token);
- if (claims == null)
- {
+ if (claims == null) {
return unauthorizedResponse(exchange, "需要先登录才能使用该功能!");
}
String userkey = JwtUtils.getUserKey(claims);
boolean islogin = redisService.hasKey(getTokenKey(userkey));
- if (!islogin)
- {
+ if (!islogin) {
return unauthorizedResponse(exchange, "登录状态已过期");
}
String userid = JwtUtils.getUserId(claims);
String username = JwtUtils.getUserName(claims);
- if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username))
- {
+ if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) {
return unauthorizedResponse(exchange, "登录验证失败");
}
@@ -104,10 +95,8 @@
return chain.filter(exchange.mutate().request(mutate.build()).build());
}
- private void addHeader(ServerHttpRequest.Builder mutate, String name, Object value)
- {
- if (value == null)
- {
+ private void addHeader(ServerHttpRequest.Builder mutate, String name, Object value) {
+ if (value == null) {
return;
}
String valueStr = value.toString();
@@ -115,13 +104,11 @@
mutate.header(name, valueEncode);
}
- private void removeHeader(ServerHttpRequest.Builder mutate, String name)
- {
+ private void removeHeader(ServerHttpRequest.Builder mutate, String name) {
mutate.headers(httpHeaders -> httpHeaders.remove(name)).build();
}
- private Mono<Void> unauthorizedResponse(ServerWebExchange exchange, String msg)
- {
+ private Mono<Void> unauthorizedResponse(ServerWebExchange exchange, String msg) {
log.error("[鉴权异常处理]请求路径:{}", exchange.getRequest().getPath());
return ServletUtils.webFluxResponseWriter(exchange.getResponse(), msg, HttpStatus.UNAUTHORIZED);
}
@@ -129,28 +116,24 @@
/**
* 获取缓存key
*/
- private String getTokenKey(String token)
- {
+ private String getTokenKey(String token) {
return CacheConstants.LOGIN_TOKEN_KEY + token;
}
/**
* 获取请求token
*/
- private String getToken(ServerHttpRequest request)
- {
+ private String getToken(ServerHttpRequest request) {
String token = request.getHeaders().getFirst(TokenConstants.AUTHENTICATION);
// 如果前端设置了令牌前缀,则裁剪掉前缀
- if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX))
- {
+ if (StringUtils.isNotEmpty(token) && token.startsWith(TokenConstants.PREFIX)) {
token = token.replaceFirst(TokenConstants.PREFIX, StringUtils.EMPTY);
}
return token;
}
@Override
- public int getOrder()
- {
+ public int getOrder() {
return -200;
}
}
\ No newline at end of file
--
Gitblit v1.7.1