From 5c41048a7b55e5df92fc88996ef10e58cbf967d1 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期三, 21 八月 2024 18:07:41 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/RequestParamGlobalFilter.java |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/RequestParamGlobalFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/RequestParamGlobalFilter.java
index dd622ed..e5afdad 100644
--- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/RequestParamGlobalFilter.java
+++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/RequestParamGlobalFilter.java
@@ -6,6 +6,7 @@
 import com.ruoyi.common.core.utils.ServletUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.html.EscapeUtil;
+import com.ruoyi.gateway.config.properties.IgnoreWhiteProperties;
 import com.ruoyi.gateway.config.properties.XssProperties;
 import io.netty.buffer.ByteBufAllocator;
 import org.apache.commons.codec.binary.Base64;
@@ -42,10 +43,24 @@
  */
 @Component
 public class RequestParamGlobalFilter implements GlobalFilter, Ordered {
+
+	@Autowired
+	private IgnoreWhiteProperties ignoreWhite;
 	
 	
 	@Override
 	public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
+		ServerHttpRequest request = exchange.getRequest();
+		ServerHttpRequest.Builder mutate = request.mutate();
+		HttpMethod method = request.getMethod();
+		if(method != HttpMethod.POST){
+			return chain.filter(exchange.mutate().request(mutate.build()).build());
+		}
+		// 跳过不需要验证的路径
+		String url = request.getURI().getPath();
+		if (StringUtils.matches(url, ignoreWhite.getWhites())) {
+			return chain.filter(exchange);
+		}
 		ServerHttpRequestDecorator httpRequestDecorator = requestDecorator(exchange);
 		return chain.filter(exchange.mutate().request(httpRequestDecorator).build());
 	}

--
Gitblit v1.7.1