fix 解决 Spring Cloud Gateway 2.x 跨域出现重复 Origin 的 BUG 时导致 Spring Cloud Gateway 负载均衡失效问题

pull/92/head
胡鑫岳 2024-01-05 16:13:24 +08:00
parent fa2908a2f9
commit e978f9862a
1 changed files with 2 additions and 3 deletions

View File

@ -13,7 +13,7 @@ import java.util.ArrayList;
/**
* Spring Cloud Gateway 2.x Origin BUG
*
* <p>
* <a href="https://blog.csdn.net/zimou5581/article/details/90043178" />
*
* @author
@ -30,7 +30,7 @@ public class CorsResponseHeaderFilter implements GlobalFilter, Ordered {
@Override
public Mono<Void> 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<String>() {{
add(kv.getValue().get(0));
}}));
return chain.filter(exchange);
}));
}