HttpEntityMethodProcessor lets entity headers override existing headers (again)

Issue: SPR-15952
This commit is contained in:
Juergen Hoeller
2017-09-19 13:47:30 +02:00
parent 8caeb33974
commit 5bdcb895c0
2 changed files with 61 additions and 9 deletions

View File

@@ -181,15 +181,15 @@ public class HttpEntityMethodProcessor extends AbstractMessageConverterMethodPro
HttpHeaders outputHeaders = outputMessage.getHeaders();
HttpHeaders entityHeaders = responseEntity.getHeaders();
if (outputHeaders.containsKey(HttpHeaders.VARY) && entityHeaders.containsKey(HttpHeaders.VARY)) {
List<String> values = getVaryRequestHeadersToAdd(outputHeaders, entityHeaders);
if (!values.isEmpty()) {
outputHeaders.setVary(values);
}
}
if (!entityHeaders.isEmpty()) {
entityHeaders.forEach((key, value) -> {
if (!outputHeaders.containsKey(key)) {
if (HttpHeaders.VARY.equals(key) && outputHeaders.containsKey(HttpHeaders.VARY)) {
List<String> values = getVaryRequestHeadersToAdd(outputHeaders, entityHeaders);
if (!values.isEmpty()) {
outputHeaders.setVary(values);
}
}
else {
outputHeaders.put(key, value);
}
});