GH-864 Add support for carying HTTP request parameters in Message headers

Resolves #864
This commit is contained in:
Oleg Zhurakousky
2022-05-03 19:14:00 +02:00
parent fd60bdb237
commit 1a5489b5b6
4 changed files with 45 additions and 1 deletions

View File

@@ -89,7 +89,15 @@ public final class FunctionWebRequestProcessingHelper {
HttpHeaders headers = wrapper.getHeaders();
Message<?> inputMessage = argument == null ? null : MessageBuilder.withPayload(argument).copyHeaders(headers.toSingleValueMap()).build();
Message<?> inputMessage = null;
if (argument != null) {
MessageBuilder builder = MessageBuilder.withPayload(argument);
if (!CollectionUtils.isEmpty(wrapper.getParams())) {
builder = builder.setHeader(HeaderUtils.HTTP_REQUEST_PARAM, wrapper.getParams().toSingleValueMap());
}
inputMessage = builder.copyHeaders(headers.toSingleValueMap()).build();
}
if (function.isRoutingFunction()) {
function.setSkipOutputConversion(true);

View File

@@ -31,6 +31,11 @@ import org.springframework.messaging.MessageHeaders;
*/
public final class HeaderUtils {
/**
* Message Header name which contains HTTP request parameters.
*/
public static final String HTTP_REQUEST_PARAM = "http_request_param";
private static HttpHeaders IGNORED = new HttpHeaders();
private static HttpHeaders REQUEST_ONLY = new HttpHeaders();