From af39fe3ee3fd69fc08bd435435e4dc140b9e9fe7 Mon Sep 17 00:00:00 2001 From: Muchnik Andrey Date: Tue, 11 Nov 2025 18:43:27 +0300 Subject: [PATCH 1/2] fixes(gh-3974): Invalid shortcut field order configuration in circuit breaker filter factory --- ...pringCloudCircuitBreakerFilterFactory.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/filter/factory/SpringCloudCircuitBreakerFilterFactory.java b/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/filter/factory/SpringCloudCircuitBreakerFilterFactory.java index 0f8f3835f3..6a22ab8ce5 100644 --- a/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/filter/factory/SpringCloudCircuitBreakerFilterFactory.java +++ b/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/filter/factory/SpringCloudCircuitBreakerFilterFactory.java @@ -17,6 +17,7 @@ package org.springframework.cloud.gateway.filter.factory; import java.net.URI; +import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -58,6 +59,26 @@ public abstract class SpringCloudCircuitBreakerFilterFactory /** CircuitBreaker component name. */ public static final String NAME = "CircuitBreaker"; + /** + * Fallback uri key. + */ + public static final String FALLBACK_URI_KEY = "fallbackUri"; + + /** + * Route Id key. + */ + public static final String ROUTE_ID_KEY = "routeId"; + + /** + * Status codes key. + */ + public static final String STATUS_CODES_KEY = "statusCodes"; + + /** + * Resume without error key. + */ + public static final String RESUME_WITHOUT_ERROR_KEY = "resumeWithoutError"; + private ReactiveCircuitBreakerFactory reactiveCircuitBreakerFactory; private ReactiveCircuitBreaker cb; @@ -84,7 +105,7 @@ private DispatcherHandler getDispatcherHandler() { @Override public List shortcutFieldOrder() { - return singletonList(NAME_KEY); + return Arrays.asList(NAME_KEY, FALLBACK_URI_KEY, ROUTE_ID_KEY, STATUS_CODES_KEY, RESUME_WITHOUT_ERROR_KEY); } @Override From c200018efd21030c0294f58df8927036d9439acb Mon Sep 17 00:00:00 2001 From: Muchnik Andrey Date: Tue, 11 Nov 2025 18:47:09 +0300 Subject: [PATCH 2/2] chore: Style --- .../filter/factory/SpringCloudCircuitBreakerFilterFactory.java | 1 - 1 file changed, 1 deletion(-) diff --git a/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/filter/factory/SpringCloudCircuitBreakerFilterFactory.java b/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/filter/factory/SpringCloudCircuitBreakerFilterFactory.java index 6a22ab8ce5..d7367eedf2 100644 --- a/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/filter/factory/SpringCloudCircuitBreakerFilterFactory.java +++ b/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/filter/factory/SpringCloudCircuitBreakerFilterFactory.java @@ -42,7 +42,6 @@ import org.springframework.web.server.ServerWebExchange; import org.springframework.web.util.UriComponentsBuilder; -import static java.util.Collections.singletonList; import static org.springframework.cloud.gateway.support.GatewayToStringStyler.filterToStringCreator; import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.CIRCUITBREAKER_EXECUTION_EXCEPTION_ATTR; import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.GATEWAY_REQUEST_URL_ATTR;