From 78549d4963a15c6decfd17ea9be15f27c3cdc03c Mon Sep 17 00:00:00 2001 From: Matteo Cristoforo Date: Sat, 11 May 2024 17:24:04 +0200 Subject: [PATCH] Fix cookie management in reactive JdkClientHttpRequest Prevent cookies to be set to empty in the HTTP request if no cookie is present See gh-32799 --- .../http/client/reactive/JdkClientHttpRequest.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/client/reactive/JdkClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/reactive/JdkClientHttpRequest.java index faf65dc9ed..5e62a42796 100644 --- a/spring-web/src/main/java/org/springframework/http/client/reactive/JdkClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/reactive/JdkClientHttpRequest.java @@ -37,6 +37,7 @@ import org.springframework.http.HttpCookie; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.util.Assert; +import org.springframework.util.MultiValueMap; /** * {@link ClientHttpRequest} for the Java {@link HttpClient}. @@ -108,8 +109,11 @@ class JdkClientHttpRequest extends AbstractClientHttpRequest { @Override protected void applyCookies() { - this.builder.header(HttpHeaders.COOKIE, getCookies().values().stream() - .flatMap(List::stream).map(HttpCookie::toString).collect(Collectors.joining(";"))); + MultiValueMap cookies = getCookies(); + if (!cookies.isEmpty()) { + this.builder.header(HttpHeaders.COOKIE, cookies.values().stream() + .flatMap(List::stream).map(HttpCookie::toString).collect(Collectors.joining(";"))); + } } @Override