From e978f9862aa9aa47831b0432d45fe7a68a74ba19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E9=91=AB=E5=B2=B3?= <949643027@qq.com> Date: Fri, 5 Jan 2024 16:13:24 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=A7=A3=E5=86=B3=20Spring=20Cloud=20Gat?= =?UTF-8?q?eway=202.x=20=E8=B7=A8=E5=9F=9F=E5=87=BA=E7=8E=B0=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=20Origin=20=E7=9A=84=20BUG=20=E6=97=B6=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=20Spring=20Cloud=20Gateway=20=E8=B4=9F=E8=BD=BD?= =?UTF-8?q?=E5=9D=87=E8=A1=A1=E5=A4=B1=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yudao/gateway/filter/cors/CorsResponseHeaderFilter.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/filter/cors/CorsResponseHeaderFilter.java b/yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/filter/cors/CorsResponseHeaderFilter.java index 3ea0bd218..16919ab32 100644 --- a/yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/filter/cors/CorsResponseHeaderFilter.java +++ b/yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/filter/cors/CorsResponseHeaderFilter.java @@ -13,7 +13,7 @@ import java.util.ArrayList; /** * 解决 Spring Cloud Gateway 2.x 跨域时,出现重复 Origin 的 BUG - * + *

* 参考文档: * * @author 芋道源码 @@ -30,7 +30,7 @@ public class CorsResponseHeaderFilter implements GlobalFilter, Ordered { @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { - return chain.filter(exchange).then(Mono.defer(() -> { + return chain.filter(exchange).then(Mono.fromRunnable(() -> { exchange.getResponse().getHeaders().entrySet().stream() .filter(kv -> (kv.getValue() != null && kv.getValue().size() > 1)) .filter(kv -> (kv.getKey().equals(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN) @@ -38,7 +38,6 @@ public class CorsResponseHeaderFilter implements GlobalFilter, Ordered { .forEach(kv -> kv.setValue(new ArrayList() {{ add(kv.getValue().get(0)); }})); - return chain.filter(exchange); })); }