From fd8fc886df7a382ebcd039b62eea0d968099c88b Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Tue, 6 Jul 2021 07:38:26 +0200 Subject: [PATCH] Extract uri into message headers --- .../cloud/function/web/flux/FunctionController.java | 5 ++++- .../cloud/function/web/mvc/FunctionController.java | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/flux/FunctionController.java b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/flux/FunctionController.java index bd3939a78..b04c95212 100644 --- a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/flux/FunctionController.java +++ b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/flux/FunctionController.java @@ -23,6 +23,7 @@ import org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry import org.springframework.cloud.function.web.constants.WebRequestConstants; import org.springframework.cloud.function.web.util.FunctionWebRequestProcessingHelper; import org.springframework.cloud.function.web.util.FunctionWrapper; +import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.http.codec.multipart.FormFieldPart; @@ -99,8 +100,10 @@ public class FunctionController { private FunctionWrapper wrapper(ServerWebExchange request) { FunctionInvocationWrapper function = (FunctionInvocationWrapper) request .getAttribute(WebRequestConstants.HANDLER); + HttpHeaders headers = HttpHeaders.writableHttpHeaders(request.getRequest().getHeaders()); + headers.set("uri", request.getRequest().getURI().toString()); FunctionWrapper wrapper = new FunctionWrapper(function); - wrapper.setHeaders(request.getRequest().getHeaders()); + wrapper.setHeaders(headers); wrapper.getParams().addAll(request.getRequest().getQueryParams()); String argument = (String) request.getAttribute(WebRequestConstants.ARGUMENT); if (argument != null) { diff --git a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/mvc/FunctionController.java b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/mvc/FunctionController.java index 742bc1798..0d08f3e91 100644 --- a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/mvc/FunctionController.java +++ b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/mvc/FunctionController.java @@ -29,6 +29,7 @@ import org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry import org.springframework.cloud.function.web.constants.WebRequestConstants; import org.springframework.cloud.function.web.util.FunctionWebRequestProcessingHelper; import org.springframework.cloud.function.web.util.FunctionWrapper; +import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity.BodyBuilder; @@ -128,6 +129,10 @@ public class FunctionController { String key = keys.next(); wrapper.getHeaders().addAll(key, Arrays.asList(request.getHeaderValues(key))); } + + HttpHeaders headers = HttpHeaders.writableHttpHeaders(wrapper.getHeaders()); + headers.set("uri", ((ServletWebRequest) request).getRequest().getRequestURI()); + String argument = (String) request.getAttribute(WebRequestConstants.ARGUMENT, WebRequest.SCOPE_REQUEST); if (argument != null) {