From de5f07fe1acd8d462f9c54d7a04c5c47a87264d1 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 07 三月 2026 21:01:24 +0800
Subject: [PATCH] 修改bug
---
xp-robotaxi-gateway-boot/src/main/java/com/xiaopeng/gateway/filter/CacheRequestFilter.java | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/xp-robotaxi-gateway-boot/src/main/java/com/xiaopeng/gateway/filter/CacheRequestFilter.java b/xp-robotaxi-gateway-boot/src/main/java/com/xiaopeng/gateway/filter/CacheRequestFilter.java
index 1f37289..8ed4bd5 100644
--- a/xp-robotaxi-gateway-boot/src/main/java/com/xiaopeng/gateway/filter/CacheRequestFilter.java
+++ b/xp-robotaxi-gateway-boot/src/main/java/com/xiaopeng/gateway/filter/CacheRequestFilter.java
@@ -8,6 +8,7 @@
import org.springframework.cloud.gateway.filter.OrderedGatewayFilter;
import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
import org.springframework.cloud.gateway.support.ServerWebExchangeUtils;
+import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
@@ -52,6 +53,11 @@
if (method == null || method == HttpMethod.GET || method == HttpMethod.DELETE) {
return chain.filter(exchange);
}
+ String contentType = exchange.getRequest().getHeaders().getFirst(HttpHeaders.CONTENT_TYPE);
+ // multipart(二进制)请求不缓存body,避免大文件带来内存/性能风险
+ if (contentType != null && contentType.toLowerCase().startsWith("multipart/")) {
+ return chain.filter(exchange);
+ }
return ServerWebExchangeUtils.cacheRequestBodyAndRequest(exchange, (serverHttpRequest) -> {
if (serverHttpRequest == exchange.getRequest()) {
return chain.filter(exchange);
@@ -72,4 +78,4 @@
this.order = order;
}
}
-}
\ No newline at end of file
+}
--
Gitblit v1.7.1