diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/function/SseServerResponse.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/function/SseServerResponse.java
index 773c8fdbff8..5bb7d569a6e 100644
--- a/spring-webmvc/src/main/java/org/springframework/web/servlet/function/SseServerResponse.java
+++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/function/SseServerResponse.java
@@ -49,6 +49,7 @@ import org.springframework.web.servlet.ModelAndView;
* Server-Sent Events.
*
* @author Arjen Poutsma
+ * @author Sebastien Deleuze
* @since 5.3.2
*/
final class SseServerResponse extends AbstractServerResponse {
@@ -91,7 +92,7 @@ final class SseServerResponse extends AbstractServerResponse {
}
DefaultAsyncServerResponse.writeAsync(request, response, result);
- this.sseConsumer.accept(new DefaultSseBuilder(response, context, result));
+ this.sseConsumer.accept(new DefaultSseBuilder(response, context, result, this.headers()));
return null;
}
@@ -114,15 +115,19 @@ final class SseServerResponse extends AbstractServerResponse {
private final List> messageConverters;
+ private final HttpHeaders httpHeaders;
+
private final StringBuilder builder = new StringBuilder();
private boolean sendFailed;
- public DefaultSseBuilder(HttpServletResponse response, Context context, DeferredResult> deferredResult) {
+ public DefaultSseBuilder(HttpServletResponse response, Context context, DeferredResult> deferredResult,
+ HttpHeaders httpHeaders) {
this.outputMessage = new ServletServerHttpResponse(response);
this.deferredResult = deferredResult;
this.messageConverters = context.messageConverters();
+ this.httpHeaders = httpHeaders;
}
@Override
@@ -207,7 +212,7 @@ final class SseServerResponse extends AbstractServerResponse {
for (HttpMessageConverter> converter : this.messageConverters) {
if (converter.canWrite(dataClass, MediaType.APPLICATION_JSON)) {
HttpMessageConverter