diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/function/DefaultServerResponseBuilder.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/function/DefaultServerResponseBuilder.java index 67448c9fc8..11fdf1b094 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/function/DefaultServerResponseBuilder.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/function/DefaultServerResponseBuilder.java @@ -70,6 +70,7 @@ class DefaultServerResponseBuilder implements ServerResponse.BodyBuilder { this.statusCode = (other instanceof AbstractServerResponse ? ((AbstractServerResponse) other).statusCode : other.statusCode().value()); this.headers.addAll(other.headers()); + this.cookies.addAll(other.cookies()); } public DefaultServerResponseBuilder(HttpStatus status) { diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/function/DefaultServerResponseBuilderTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/function/DefaultServerResponseBuilderTests.java index a85033b432..0cfe654845 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/function/DefaultServerResponseBuilderTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/function/DefaultServerResponseBuilderTests.java @@ -71,10 +71,15 @@ public class DefaultServerResponseBuilderTests { @Test public void from() { - ServerResponse other = ServerResponse.ok().header("foo", "bar").build(); + Cookie cookie = new Cookie("foo", "bar"); + ServerResponse other = ServerResponse.ok() + .header("foo", "bar") + .cookie(cookie) + .build(); ServerResponse result = ServerResponse.from(other).build(); assertEquals(HttpStatus.OK, result.statusCode()); assertEquals("bar", result.headers().getFirst("foo")); + assertEquals(cookie, result.cookies().getFirst("foo")); }