From 19494b2c7dad2d0f72e8236c2963e1236931d055 Mon Sep 17 00:00:00 2001 From: Tim Ysewyn Date: Mon, 22 Jul 2019 19:55:33 +0200 Subject: [PATCH] Don't mark the request as routed when we need to forward (#1184) Fixes gh-1125 --- .../cloud/gateway/filter/ForwardRoutingFilter.java | 2 -- .../cloud/gateway/filter/ForwardRoutingFilterTests.java | 5 +++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilter.java b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilter.java index 35ef2eaf..53196617 100644 --- a/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilter.java +++ b/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilter.java @@ -29,7 +29,6 @@ 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.isAlreadyRouted; -import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.setAlreadyRouted; public class ForwardRoutingFilter implements GlobalFilter, Ordered { @@ -66,7 +65,6 @@ public class ForwardRoutingFilter implements GlobalFilter, Ordered { if (isAlreadyRouted(exchange) || !"forward".equals(scheme)) { return chain.filter(exchange); } - setAlreadyRouted(exchange); // TODO: translate url? diff --git a/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilterTests.java b/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilterTests.java index 0933f30f..89ff5d5b 100644 --- a/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilterTests.java +++ b/spring-cloud-gateway-core/src/test/java/org/springframework/cloud/gateway/filter/ForwardRoutingFilterTests.java @@ -94,8 +94,7 @@ public class ForwardRoutingFilterTests { verifyNoMoreInteractions(chain); verify(dispatcherHandler).handle(exchange); - assertThat(exchange.getAttributes().get(GATEWAY_ALREADY_ROUTED_ATTR)) - .isEqualTo(true); + assertThat(exchange.getAttributes().get(GATEWAY_ALREADY_ROUTED_ATTR)).isNull(); } @Test @@ -112,6 +111,8 @@ public class ForwardRoutingFilterTests { verify(dispatcherHandler).handle(captor.capture()); + assertThat(exchange.getAttributes().get(GATEWAY_ALREADY_ROUTED_ATTR)).isNull(); + ServerWebExchange webExchange = captor.getValue(); URI forwardedUrl = webExchange.getRequiredAttribute(GATEWAY_REQUEST_URL_ATTR);