Merge branch '5.3.x'

This commit is contained in:
Arjen Poutsma 2021-11-30 13:41:19 +01:00
commit f57004db2c
2 changed files with 18 additions and 3 deletions

View File

@ -361,9 +361,7 @@ class DefaultServerResponseBuilder implements ServerResponse.BodyBuilder {
private static <K,V> void copy(MultiValueMap<K,V> src, MultiValueMap<K,V> dst) { private static <K,V> void copy(MultiValueMap<K,V> src, MultiValueMap<K,V> dst) {
if (!src.isEmpty()) { if (!src.isEmpty()) {
src.entrySet().stream() dst.putAll(src);
.filter(entry -> !dst.containsKey(entry.getKey()))
.forEach(entry -> dst.put(entry.getKey(), entry.getValue()));
} }
} }
} }

View File

@ -320,6 +320,23 @@ public class DefaultServerResponseBuilderTests {
assertThat(serverResponse.block().cookies().isEmpty()).isFalse(); assertThat(serverResponse.block().cookies().isEmpty()).isFalse();
} }
@Test
public void overwriteHeaders() {
ServerResponse serverResponse =
ServerResponse.ok().headers(headers -> headers.set("Foo", "Bar")).build().block();
assertThat(serverResponse).isNotNull();
MockServerWebExchange mockExchange = MockServerWebExchange
.builder(MockServerHttpRequest.get("https://example.org"))
.build();
MockServerHttpResponse response = mockExchange.getResponse();
response.getHeaders().set("Foo", "Baz");
serverResponse.writeTo(mockExchange, EMPTY_CONTEXT).block();
assertThat(response.getHeaders().getFirst("Foo")).isEqualTo("Bar");
}
@Test @Test
public void build() { public void build() {