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); })); }