Fix HTTP header propagation logic
Related to GH-422 and GH-606
This commit is contained in:
@@ -191,7 +191,24 @@ public class RequestProcessor {
|
||||
.map(message -> message.getPayload());
|
||||
}
|
||||
else {
|
||||
builder.headers(HeaderUtils.sanitize(request.headers()));
|
||||
if (result instanceof Mono) {
|
||||
result = Mono.from(result)
|
||||
.map(message -> MessageUtils.unpack(handler, message))
|
||||
.doOnNext(value -> {
|
||||
builder.headers(HeaderUtils.sanitize(request.headers()));
|
||||
addHeaders(builder, value);
|
||||
})
|
||||
.map(message -> message.getPayload());
|
||||
}
|
||||
else {
|
||||
result = Flux.from(result)
|
||||
.map(message -> MessageUtils.unpack(handler, message))
|
||||
.doOnNext(value -> {
|
||||
builder.headers(HeaderUtils.sanitize(request.headers()));
|
||||
addHeaders(builder, value);
|
||||
})
|
||||
.map(message -> message.getPayload());
|
||||
}
|
||||
}
|
||||
|
||||
if (isOutputSingle(handler)
|
||||
|
||||
@@ -115,7 +115,7 @@ public final class FunctionWebUtils {
|
||||
}
|
||||
else if (result instanceof Message) {
|
||||
if (!isMessage) {
|
||||
result = ((Message) result).getPayload();
|
||||
// result = ((Message) result).getPayload();
|
||||
}
|
||||
else if (((Message) result).getPayload() instanceof byte[]) {
|
||||
String str = new String((byte[]) ((Message) result).getPayload());
|
||||
|
||||
Reference in New Issue
Block a user