From 4dba68ffd621f97bed163f3d50bbf7710c4194ba Mon Sep 17 00:00:00 2001 From: buildmaster Date: Thu, 27 Apr 2023 15:28:28 +0000 Subject: [PATCH 1/6] Update SNAPSHOT to 3.1.7 --- docs/pom.xml | 2 +- pom.xml | 8 ++++---- spring-cloud-gateway-dependencies/pom.xml | 4 ++-- spring-cloud-gateway-integration-tests/grpc/pom.xml | 2 +- spring-cloud-gateway-integration-tests/http2/pom.xml | 2 +- .../mvc-failure-analyzer/pom.xml | 2 +- spring-cloud-gateway-integration-tests/pom.xml | 2 +- spring-cloud-gateway-mvc/pom.xml | 2 +- spring-cloud-gateway-sample/pom.xml | 2 +- spring-cloud-gateway-server/pom.xml | 2 +- spring-cloud-gateway-webflux/pom.xml | 2 +- spring-cloud-starter-gateway/pom.xml | 2 +- 12 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/pom.xml b/docs/pom.xml index 3901d3dfa..c624d19cb 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -6,7 +6,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.7 spring-cloud-gateway-docs jar diff --git a/pom.xml b/pom.xml index 664950ef1..166b06c48 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.7 pom Spring Cloud Gateway @@ -15,7 +15,7 @@ org.springframework.cloud spring-cloud-build - 3.1.7-SNAPSHOT + 3.1.7 @@ -54,8 +54,8 @@ 1.0.6.RELEASE 1.8 1.0.0 - 2.1.7-SNAPSHOT - 3.1.7-SNAPSHOT + 2.1.7 + 3.1.6 1.17.2 1.6.21 diff --git a/spring-cloud-gateway-dependencies/pom.xml b/spring-cloud-gateway-dependencies/pom.xml index e509e5257..806bffe52 100644 --- a/spring-cloud-gateway-dependencies/pom.xml +++ b/spring-cloud-gateway-dependencies/pom.xml @@ -6,12 +6,12 @@ spring-cloud-dependencies-parent org.springframework.cloud - 3.1.7-SNAPSHOT + 3.1.7 spring-cloud-gateway-dependencies - 3.1.7-SNAPSHOT + 3.1.7 pom spring-cloud-gateway-dependencies diff --git a/spring-cloud-gateway-integration-tests/grpc/pom.xml b/spring-cloud-gateway-integration-tests/grpc/pom.xml index 70b5eb9a8..64da2896d 100644 --- a/spring-cloud-gateway-integration-tests/grpc/pom.xml +++ b/spring-cloud-gateway-integration-tests/grpc/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud spring-cloud-gateway-integration-tests - 3.1.7-SNAPSHOT + 3.1.7 .. diff --git a/spring-cloud-gateway-integration-tests/http2/pom.xml b/spring-cloud-gateway-integration-tests/http2/pom.xml index 63aab3e9d..5c4b9ad12 100644 --- a/spring-cloud-gateway-integration-tests/http2/pom.xml +++ b/spring-cloud-gateway-integration-tests/http2/pom.xml @@ -16,7 +16,7 @@ org.springframework.cloud spring-cloud-gateway-integration-tests - 3.1.7-SNAPSHOT + 3.1.7 .. diff --git a/spring-cloud-gateway-integration-tests/mvc-failure-analyzer/pom.xml b/spring-cloud-gateway-integration-tests/mvc-failure-analyzer/pom.xml index 62239a1db..47708e461 100644 --- a/spring-cloud-gateway-integration-tests/mvc-failure-analyzer/pom.xml +++ b/spring-cloud-gateway-integration-tests/mvc-failure-analyzer/pom.xml @@ -16,7 +16,7 @@ org.springframework.cloud spring-cloud-gateway-integration-tests - 3.1.7-SNAPSHOT + 3.1.7 .. diff --git a/spring-cloud-gateway-integration-tests/pom.xml b/spring-cloud-gateway-integration-tests/pom.xml index ef35303e2..11f992dcd 100644 --- a/spring-cloud-gateway-integration-tests/pom.xml +++ b/spring-cloud-gateway-integration-tests/pom.xml @@ -16,7 +16,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.7 .. diff --git a/spring-cloud-gateway-mvc/pom.xml b/spring-cloud-gateway-mvc/pom.xml index a6569ba48..9e1a32773 100644 --- a/spring-cloud-gateway-mvc/pom.xml +++ b/spring-cloud-gateway-mvc/pom.xml @@ -11,7 +11,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.7 .. diff --git a/spring-cloud-gateway-sample/pom.xml b/spring-cloud-gateway-sample/pom.xml index d5a8ca96c..7beded453 100644 --- a/spring-cloud-gateway-sample/pom.xml +++ b/spring-cloud-gateway-sample/pom.xml @@ -16,7 +16,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.7 .. diff --git a/spring-cloud-gateway-server/pom.xml b/spring-cloud-gateway-server/pom.xml index 089ebed4a..b0e966959 100644 --- a/spring-cloud-gateway-server/pom.xml +++ b/spring-cloud-gateway-server/pom.xml @@ -7,7 +7,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.7 .. spring-cloud-gateway-server diff --git a/spring-cloud-gateway-webflux/pom.xml b/spring-cloud-gateway-webflux/pom.xml index 3da8a33a7..69877b005 100644 --- a/spring-cloud-gateway-webflux/pom.xml +++ b/spring-cloud-gateway-webflux/pom.xml @@ -11,7 +11,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.7 .. diff --git a/spring-cloud-starter-gateway/pom.xml b/spring-cloud-starter-gateway/pom.xml index 08e83af4d..4d329def2 100644 --- a/spring-cloud-starter-gateway/pom.xml +++ b/spring-cloud-starter-gateway/pom.xml @@ -6,7 +6,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.7 .. spring-cloud-starter-gateway From 4f33b00291615e71a243393892980dd7f4b16085 Mon Sep 17 00:00:00 2001 From: buildmaster Date: Thu, 27 Apr 2023 15:30:53 +0000 Subject: [PATCH 2/6] Going back to snapshots --- docs/pom.xml | 2 +- pom.xml | 8 ++++---- spring-cloud-gateway-dependencies/pom.xml | 4 ++-- spring-cloud-gateway-integration-tests/grpc/pom.xml | 2 +- spring-cloud-gateway-integration-tests/http2/pom.xml | 2 +- .../mvc-failure-analyzer/pom.xml | 2 +- spring-cloud-gateway-integration-tests/pom.xml | 2 +- spring-cloud-gateway-mvc/pom.xml | 2 +- spring-cloud-gateway-sample/pom.xml | 2 +- spring-cloud-gateway-server/pom.xml | 2 +- spring-cloud-gateway-webflux/pom.xml | 2 +- spring-cloud-starter-gateway/pom.xml | 2 +- 12 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/pom.xml b/docs/pom.xml index c624d19cb..3901d3dfa 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -6,7 +6,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7 + 3.1.7-SNAPSHOT spring-cloud-gateway-docs jar diff --git a/pom.xml b/pom.xml index 166b06c48..664950ef1 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7 + 3.1.7-SNAPSHOT pom Spring Cloud Gateway @@ -15,7 +15,7 @@ org.springframework.cloud spring-cloud-build - 3.1.7 + 3.1.7-SNAPSHOT @@ -54,8 +54,8 @@ 1.0.6.RELEASE 1.8 1.0.0 - 2.1.7 - 3.1.6 + 2.1.7-SNAPSHOT + 3.1.7-SNAPSHOT 1.17.2 1.6.21 diff --git a/spring-cloud-gateway-dependencies/pom.xml b/spring-cloud-gateway-dependencies/pom.xml index 806bffe52..e509e5257 100644 --- a/spring-cloud-gateway-dependencies/pom.xml +++ b/spring-cloud-gateway-dependencies/pom.xml @@ -6,12 +6,12 @@ spring-cloud-dependencies-parent org.springframework.cloud - 3.1.7 + 3.1.7-SNAPSHOT spring-cloud-gateway-dependencies - 3.1.7 + 3.1.7-SNAPSHOT pom spring-cloud-gateway-dependencies diff --git a/spring-cloud-gateway-integration-tests/grpc/pom.xml b/spring-cloud-gateway-integration-tests/grpc/pom.xml index 64da2896d..70b5eb9a8 100644 --- a/spring-cloud-gateway-integration-tests/grpc/pom.xml +++ b/spring-cloud-gateway-integration-tests/grpc/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud spring-cloud-gateway-integration-tests - 3.1.7 + 3.1.7-SNAPSHOT .. diff --git a/spring-cloud-gateway-integration-tests/http2/pom.xml b/spring-cloud-gateway-integration-tests/http2/pom.xml index 5c4b9ad12..63aab3e9d 100644 --- a/spring-cloud-gateway-integration-tests/http2/pom.xml +++ b/spring-cloud-gateway-integration-tests/http2/pom.xml @@ -16,7 +16,7 @@ org.springframework.cloud spring-cloud-gateway-integration-tests - 3.1.7 + 3.1.7-SNAPSHOT .. diff --git a/spring-cloud-gateway-integration-tests/mvc-failure-analyzer/pom.xml b/spring-cloud-gateway-integration-tests/mvc-failure-analyzer/pom.xml index 47708e461..62239a1db 100644 --- a/spring-cloud-gateway-integration-tests/mvc-failure-analyzer/pom.xml +++ b/spring-cloud-gateway-integration-tests/mvc-failure-analyzer/pom.xml @@ -16,7 +16,7 @@ org.springframework.cloud spring-cloud-gateway-integration-tests - 3.1.7 + 3.1.7-SNAPSHOT .. diff --git a/spring-cloud-gateway-integration-tests/pom.xml b/spring-cloud-gateway-integration-tests/pom.xml index 11f992dcd..ef35303e2 100644 --- a/spring-cloud-gateway-integration-tests/pom.xml +++ b/spring-cloud-gateway-integration-tests/pom.xml @@ -16,7 +16,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7 + 3.1.7-SNAPSHOT .. diff --git a/spring-cloud-gateway-mvc/pom.xml b/spring-cloud-gateway-mvc/pom.xml index 9e1a32773..a6569ba48 100644 --- a/spring-cloud-gateway-mvc/pom.xml +++ b/spring-cloud-gateway-mvc/pom.xml @@ -11,7 +11,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7 + 3.1.7-SNAPSHOT .. diff --git a/spring-cloud-gateway-sample/pom.xml b/spring-cloud-gateway-sample/pom.xml index 7beded453..d5a8ca96c 100644 --- a/spring-cloud-gateway-sample/pom.xml +++ b/spring-cloud-gateway-sample/pom.xml @@ -16,7 +16,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7 + 3.1.7-SNAPSHOT .. diff --git a/spring-cloud-gateway-server/pom.xml b/spring-cloud-gateway-server/pom.xml index b0e966959..089ebed4a 100644 --- a/spring-cloud-gateway-server/pom.xml +++ b/spring-cloud-gateway-server/pom.xml @@ -7,7 +7,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7 + 3.1.7-SNAPSHOT .. spring-cloud-gateway-server diff --git a/spring-cloud-gateway-webflux/pom.xml b/spring-cloud-gateway-webflux/pom.xml index 69877b005..3da8a33a7 100644 --- a/spring-cloud-gateway-webflux/pom.xml +++ b/spring-cloud-gateway-webflux/pom.xml @@ -11,7 +11,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7 + 3.1.7-SNAPSHOT .. diff --git a/spring-cloud-starter-gateway/pom.xml b/spring-cloud-starter-gateway/pom.xml index 4d329def2..08e83af4d 100644 --- a/spring-cloud-starter-gateway/pom.xml +++ b/spring-cloud-starter-gateway/pom.xml @@ -6,7 +6,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7 + 3.1.7-SNAPSHOT .. spring-cloud-starter-gateway From 2e643e7283f8201ec4be4c44a7da8bbfc4737c04 Mon Sep 17 00:00:00 2001 From: buildmaster Date: Thu, 27 Apr 2023 15:30:53 +0000 Subject: [PATCH 3/6] Bumping versions to 3.1.8-SNAPSHOT after release --- docs/pom.xml | 2 +- pom.xml | 8 ++++---- spring-cloud-gateway-dependencies/pom.xml | 4 ++-- spring-cloud-gateway-integration-tests/grpc/pom.xml | 2 +- spring-cloud-gateway-integration-tests/http2/pom.xml | 2 +- .../mvc-failure-analyzer/pom.xml | 2 +- spring-cloud-gateway-integration-tests/pom.xml | 2 +- spring-cloud-gateway-mvc/pom.xml | 2 +- spring-cloud-gateway-sample/pom.xml | 2 +- spring-cloud-gateway-server/pom.xml | 2 +- spring-cloud-gateway-webflux/pom.xml | 2 +- spring-cloud-starter-gateway/pom.xml | 2 +- 12 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/pom.xml b/docs/pom.xml index 3901d3dfa..0f30a5475 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -6,7 +6,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.8-SNAPSHOT spring-cloud-gateway-docs jar diff --git a/pom.xml b/pom.xml index 664950ef1..f2ece5bd6 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.8-SNAPSHOT pom Spring Cloud Gateway @@ -15,7 +15,7 @@ org.springframework.cloud spring-cloud-build - 3.1.7-SNAPSHOT + 3.1.8-SNAPSHOT @@ -54,8 +54,8 @@ 1.0.6.RELEASE 1.8 1.0.0 - 2.1.7-SNAPSHOT - 3.1.7-SNAPSHOT + 2.1.8-SNAPSHOT + 3.1.6 1.17.2 1.6.21 diff --git a/spring-cloud-gateway-dependencies/pom.xml b/spring-cloud-gateway-dependencies/pom.xml index e509e5257..0040211bc 100644 --- a/spring-cloud-gateway-dependencies/pom.xml +++ b/spring-cloud-gateway-dependencies/pom.xml @@ -6,12 +6,12 @@ spring-cloud-dependencies-parent org.springframework.cloud - 3.1.7-SNAPSHOT + 3.1.8-SNAPSHOT spring-cloud-gateway-dependencies - 3.1.7-SNAPSHOT + 3.1.8-SNAPSHOT pom spring-cloud-gateway-dependencies diff --git a/spring-cloud-gateway-integration-tests/grpc/pom.xml b/spring-cloud-gateway-integration-tests/grpc/pom.xml index 70b5eb9a8..8316243bc 100644 --- a/spring-cloud-gateway-integration-tests/grpc/pom.xml +++ b/spring-cloud-gateway-integration-tests/grpc/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud spring-cloud-gateway-integration-tests - 3.1.7-SNAPSHOT + 3.1.8-SNAPSHOT .. diff --git a/spring-cloud-gateway-integration-tests/http2/pom.xml b/spring-cloud-gateway-integration-tests/http2/pom.xml index 63aab3e9d..d3209a2a2 100644 --- a/spring-cloud-gateway-integration-tests/http2/pom.xml +++ b/spring-cloud-gateway-integration-tests/http2/pom.xml @@ -16,7 +16,7 @@ org.springframework.cloud spring-cloud-gateway-integration-tests - 3.1.7-SNAPSHOT + 3.1.8-SNAPSHOT .. diff --git a/spring-cloud-gateway-integration-tests/mvc-failure-analyzer/pom.xml b/spring-cloud-gateway-integration-tests/mvc-failure-analyzer/pom.xml index 62239a1db..8c4799b6e 100644 --- a/spring-cloud-gateway-integration-tests/mvc-failure-analyzer/pom.xml +++ b/spring-cloud-gateway-integration-tests/mvc-failure-analyzer/pom.xml @@ -16,7 +16,7 @@ org.springframework.cloud spring-cloud-gateway-integration-tests - 3.1.7-SNAPSHOT + 3.1.8-SNAPSHOT .. diff --git a/spring-cloud-gateway-integration-tests/pom.xml b/spring-cloud-gateway-integration-tests/pom.xml index ef35303e2..3eb025c33 100644 --- a/spring-cloud-gateway-integration-tests/pom.xml +++ b/spring-cloud-gateway-integration-tests/pom.xml @@ -16,7 +16,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.8-SNAPSHOT .. diff --git a/spring-cloud-gateway-mvc/pom.xml b/spring-cloud-gateway-mvc/pom.xml index a6569ba48..e7edbbec0 100644 --- a/spring-cloud-gateway-mvc/pom.xml +++ b/spring-cloud-gateway-mvc/pom.xml @@ -11,7 +11,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.8-SNAPSHOT .. diff --git a/spring-cloud-gateway-sample/pom.xml b/spring-cloud-gateway-sample/pom.xml index d5a8ca96c..122be9ae6 100644 --- a/spring-cloud-gateway-sample/pom.xml +++ b/spring-cloud-gateway-sample/pom.xml @@ -16,7 +16,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.8-SNAPSHOT .. diff --git a/spring-cloud-gateway-server/pom.xml b/spring-cloud-gateway-server/pom.xml index 089ebed4a..bb53b0843 100644 --- a/spring-cloud-gateway-server/pom.xml +++ b/spring-cloud-gateway-server/pom.xml @@ -7,7 +7,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.8-SNAPSHOT .. spring-cloud-gateway-server diff --git a/spring-cloud-gateway-webflux/pom.xml b/spring-cloud-gateway-webflux/pom.xml index 3da8a33a7..116746f33 100644 --- a/spring-cloud-gateway-webflux/pom.xml +++ b/spring-cloud-gateway-webflux/pom.xml @@ -11,7 +11,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.8-SNAPSHOT .. diff --git a/spring-cloud-starter-gateway/pom.xml b/spring-cloud-starter-gateway/pom.xml index 08e83af4d..3c76053f6 100644 --- a/spring-cloud-starter-gateway/pom.xml +++ b/spring-cloud-starter-gateway/pom.xml @@ -6,7 +6,7 @@ org.springframework.cloud spring-cloud-gateway - 3.1.7-SNAPSHOT + 3.1.8-SNAPSHOT .. spring-cloud-starter-gateway From 740bcae832ad2a092f7051c2fa03c642b3851666 Mon Sep 17 00:00:00 2001 From: buildmaster Date: Fri, 28 Apr 2023 21:06:34 +0000 Subject: [PATCH 4/6] Bumping versions --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f2ece5bd6..875a34c6e 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ 1.8 1.0.0 2.1.8-SNAPSHOT - 3.1.6 + 3.1.7-SNAPSHOT 1.17.2 1.6.21 From 7f1b1927ab2404224f612938ff339ece5b98fc50 Mon Sep 17 00:00:00 2001 From: sgibb Date: Mon, 19 Jun 2023 13:21:44 -0400 Subject: [PATCH 5/6] Run test with random port --- .../cloud/gateway/test/RouteConstructionIntegrationTests.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/test/RouteConstructionIntegrationTests.java b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/test/RouteConstructionIntegrationTests.java index ceefb7a5b..5af3ce83c 100644 --- a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/test/RouteConstructionIntegrationTests.java +++ b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/test/RouteConstructionIntegrationTests.java @@ -31,8 +31,8 @@ public class RouteConstructionIntegrationTests { @Test public void routesWithVerificationShouldFail() { - assertThatThrownBy(() -> new SpringApplicationBuilder(TestConfig.class).profiles("verification-route").run()) - .hasMessageContaining("Stop right now!"); + assertThatThrownBy(() -> new SpringApplicationBuilder(TestConfig.class).profiles("verification-route") + .run("--server.port=0")).hasMessageContaining("Stop right now!"); } @EnableAutoConfiguration From d8d5bc071ba8f29da49ef95f97ca78a38d1054e5 Mon Sep 17 00:00:00 2001 From: sgibb Date: Mon, 19 Jun 2023 13:29:41 -0400 Subject: [PATCH 6/6] Removes predicate path exchange attr for forwards. This moves the removal of GATEWAY_PREDICATE_PATH_CONTAINER_ATTR to ServerWebExchangeUtils.handle() which is now used in SpringCloudCircuitBreakerFilterFactory and ForwardRoutingFilter. Fixes gh-2950 --- .../gateway/filter/ForwardRoutingFilter.java | 3 +- ...pringCloudCircuitBreakerFilterFactory.java | 6 +-- .../support/ServerWebExchangeUtils.java | 15 ++++++ ...rdRoutingFilterStaticIntegrationTests.java | 50 +++++++++++++++++++ .../resources/application-forwardstatic.yml | 8 +++ .../test/resources/static/httpbin/docs.html | 21 ++++++++ 6 files changed, 98 insertions(+), 5 deletions(-) create mode 100644 spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilterStaticIntegrationTests.java create mode 100644 spring-cloud-gateway-server/src/test/resources/application-forwardstatic.yml create mode 100644 spring-cloud-gateway-server/src/test/resources/static/httpbin/docs.html diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilter.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilter.java index 30319a9b4..4191a2647 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilter.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilter.java @@ -28,6 +28,7 @@ import org.springframework.web.reactive.DispatcherHandler; import org.springframework.web.server.ServerWebExchange; import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.GATEWAY_REQUEST_URL_ATTR; +import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.handle; import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.isAlreadyRouted; public class ForwardRoutingFilter implements GlobalFilter, Ordered { @@ -71,7 +72,7 @@ public class ForwardRoutingFilter implements GlobalFilter, Ordered { log.trace("Forwarding to URI: " + requestUrl); } - return this.getDispatcherHandler().handle(exchange); + return handle(this.getDispatcherHandler(), exchange); } } diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/factory/SpringCloudCircuitBreakerFilterFactory.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/factory/SpringCloudCircuitBreakerFilterFactory.java index 2268e6d7c..feb08e447 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/factory/SpringCloudCircuitBreakerFilterFactory.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/factory/SpringCloudCircuitBreakerFilterFactory.java @@ -43,9 +43,9 @@ import static java.util.Collections.singletonList; import static java.util.Optional.ofNullable; 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_PREDICATE_PATH_CONTAINER_ATTR; import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.GATEWAY_REQUEST_URL_ATTR; import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.containsEncodedParts; +import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.handle; import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.reset; /** @@ -107,7 +107,6 @@ public abstract class SpringCloudCircuitBreakerFilterFactory } exchange.getResponse().setStatusCode(null); - reset(exchange); // TODO: copied from RouteToRequestUrlFilter URI uri = exchange.getRequest().getURI(); @@ -116,14 +115,13 @@ public abstract class SpringCloudCircuitBreakerFilterFactory URI requestUrl = UriComponentsBuilder.fromUri(uri).host(null).port(null) .uri(config.getFallbackUri()).scheme(null).build(encoded).toUri(); exchange.getAttributes().put(GATEWAY_REQUEST_URL_ATTR, requestUrl); - exchange.getAttributes().remove(GATEWAY_PREDICATE_PATH_CONTAINER_ATTR); addExceptionDetails(t, exchange); // Reset the exchange reset(exchange); ServerHttpRequest request = exchange.getRequest().mutate().uri(requestUrl).build(); - return getDispatcherHandler().handle(exchange.mutate().request(request).build()); + return handle(getDispatcherHandler(), exchange.mutate().request(request).build()); }).onErrorResume(t -> handleErrorWithoutFallback(t, config.isResumeWithoutError())); } diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/support/ServerWebExchangeUtils.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/support/ServerWebExchangeUtils.java index da6785555..6e23c0128 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/support/ServerWebExchangeUtils.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/support/ServerWebExchangeUtils.java @@ -46,6 +46,7 @@ import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.http.server.reactive.ServerHttpRequestDecorator; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.util.Assert; +import org.springframework.web.reactive.DispatcherHandler; import org.springframework.web.server.ServerWebExchange; import org.springframework.web.util.UriComponentsBuilder; @@ -401,4 +402,18 @@ public final class ServerWebExchangeUtils { return decorator; } + /** + * One place to handle forwarding using DispatcherHandler. Allows for common code to + * be reused. + * @param handler The DispatcherHandler. + * @param exchange The ServerWebExchange. + * @return value from handler. + */ + public static Mono handle(DispatcherHandler handler, ServerWebExchange exchange) { + // remove attributes that may disrupt the forwarded request + exchange.getAttributes().remove(GATEWAY_PREDICATE_PATH_CONTAINER_ATTR); + + return handler.handle(exchange); + } + } diff --git a/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilterStaticIntegrationTests.java b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilterStaticIntegrationTests.java new file mode 100644 index 000000000..e7adf9b94 --- /dev/null +++ b/spring-cloud-gateway-server/src/test/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilterStaticIntegrationTests.java @@ -0,0 +1,50 @@ +/* + * Copyright 2013-2020 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.gateway.filter; + +import org.junit.jupiter.api.Test; + +import org.springframework.boot.SpringBootConfiguration; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.cloud.gateway.test.BaseWebClientTests; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ActiveProfiles; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; + +@SpringBootTest(webEnvironment = RANDOM_PORT) +@ActiveProfiles("forwardstatic") +public class ForwardRoutingFilterStaticIntegrationTests extends BaseWebClientTests { + + @Test + public void gatewayRequestsMeterFilterHasTags() { + testClient.get().uri("/mydocs").exchange().expectStatus().isOk().expectBody(String.class) + .consumeWith(result -> { + assertThat(result.getResponseBody()).contains("Docs 123"); + }); + } + + @EnableAutoConfiguration + @SpringBootConfiguration + @Import(DefaultTestConfig.class) + public static class CustomConfig { + + } + +} diff --git a/spring-cloud-gateway-server/src/test/resources/application-forwardstatic.yml b/spring-cloud-gateway-server/src/test/resources/application-forwardstatic.yml new file mode 100644 index 000000000..35b5b4a0e --- /dev/null +++ b/spring-cloud-gateway-server/src/test/resources/application-forwardstatic.yml @@ -0,0 +1,8 @@ +spring: + cloud: + gateway: + routes: + - uri: forward:/docs.html + id: static_docs_route + predicates: + - Path=/mydocs diff --git a/spring-cloud-gateway-server/src/test/resources/static/httpbin/docs.html b/spring-cloud-gateway-server/src/test/resources/static/httpbin/docs.html new file mode 100644 index 000000000..bcd386b2a --- /dev/null +++ b/spring-cloud-gateway-server/src/test/resources/static/httpbin/docs.html @@ -0,0 +1,21 @@ + + + + +

Docs 123

+ + \ No newline at end of file