Support cookies with the same name with Reactor Netty

Ignore the related test with Undertow due to a bug in
their cookies handling.

Closes gh-28490
This commit is contained in:
Sébastien Deleuze
2023-12-06 14:55:59 +01:00
parent b53ffa3855
commit 8fe2c780df
3 changed files with 26 additions and 5 deletions

View File

@@ -50,6 +50,7 @@ import org.springframework.util.MultiValueMap;
* <p>This class is based on {@link ReactorServerHttpRequest}.
*
* @author Violeta Georgieva
* @author Sebastien Deleuze
* @since 6.0
*/
class ReactorNetty2ServerHttpRequest extends AbstractServerHttpRequest {
@@ -144,8 +145,8 @@ class ReactorNetty2ServerHttpRequest extends AbstractServerHttpRequest {
@Override
protected MultiValueMap<String, HttpCookie> initCookies() {
MultiValueMap<String, HttpCookie> cookies = new LinkedMultiValueMap<>();
for (CharSequence name : this.request.cookies().keySet()) {
for (HttpCookiePair cookie : this.request.cookies().get(name)) {
for (CharSequence name : this.request.allCookies().keySet()) {
for (HttpCookiePair cookie : this.request.allCookies().get(name)) {
CharSequence cookieValue = cookie.value();
HttpCookie httpCookie = new HttpCookie(name.toString(), cookieValue != null ? cookieValue.toString() : null);
cookies.add(name.toString(), httpCookie);

View File

@@ -75,8 +75,8 @@ class ReactorServerHttpRequest extends AbstractServerHttpRequest {
@Override
protected MultiValueMap<String, HttpCookie> initCookies() {
MultiValueMap<String, HttpCookie> cookies = new LinkedMultiValueMap<>();
for (CharSequence name : this.request.cookies().keySet()) {
for (Cookie cookie : this.request.cookies().get(name)) {
for (CharSequence name : this.request.allCookies().keySet()) {
for (Cookie cookie : this.request.allCookies().get(name)) {
HttpCookie httpCookie = new HttpCookie(name.toString(), cookie.value());
cookies.add(name.toString(), httpCookie);
}