Extract uri into message headers

This commit is contained in:
Oleg Zhurakousky
2021-07-06 07:38:26 +02:00
parent 9fffafb4d3
commit fd8fc886df
2 changed files with 9 additions and 1 deletions

View File

@@ -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) {

View File

@@ -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) {