diff --git a/src/main/java/org/springframework/cloud/gateway/handler/WebClientRoutingWebHandler.java b/src/main/java/org/springframework/cloud/gateway/handler/WebClientRoutingWebHandler.java index 69e74229a..163ea8dd8 100644 --- a/src/main/java/org/springframework/cloud/gateway/handler/WebClientRoutingWebHandler.java +++ b/src/main/java/org/springframework/cloud/gateway/handler/WebClientRoutingWebHandler.java @@ -35,7 +35,7 @@ public class WebClientRoutingWebHandler implements WebHandler { .headers(request.getHeaders()) .body((r, context) -> r.writeWith(request.getBody())); - return this.webClient.exchange(clientRequest).flatMap(clientResponse -> { + return this.webClient.exchange(clientRequest).then(clientResponse -> { // Defer committing the response until all route filters have run // Put client response as ServerWebExchange attribute and write response later WriteResponseFilter @@ -46,6 +46,6 @@ public class WebClientRoutingWebHandler implements WebHandler { response.getHeaders().putAll(clientResponse.headers().asHttpHeaders()); response.setStatusCode(clientResponse.statusCode()); return Mono.empty(); - }).next(); // TODO: is this correct? + }); } }