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
This commit is contained in:
Matteo Cristoforo
2024-05-11 17:24:04 +02:00
committed by rstoyanchev
parent e4e6910122
commit 78549d4963

View File

@@ -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<String, HttpCookie> cookies = getCookies();
if (!cookies.isEmpty()) {
this.builder.header(HttpHeaders.COOKIE, cookies.values().stream()
.flatMap(List::stream).map(HttpCookie::toString).collect(Collectors.joining(";")));
}
}
@Override