diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/WebSocketHttpHeaders.java b/spring-websocket/src/main/java/org/springframework/web/socket/WebSocketHttpHeaders.java index 84d81fa7b445..b588f4b12027 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/WebSocketHttpHeaders.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/WebSocketHttpHeaders.java @@ -160,16 +160,7 @@ public void setSecWebSocketProtocol(List secWebSocketProtocols) { * @return the value of the header */ public List getSecWebSocketProtocol() { - List values = get(SEC_WEBSOCKET_PROTOCOL); - if (CollectionUtils.isEmpty(values)) { - return Collections.emptyList(); - } - else if (values.size() == 1) { - return getValuesAsList(SEC_WEBSOCKET_PROTOCOL); - } - else { - return values; - } + return getValuesAsList(SEC_WEBSOCKET_PROTOCOL); } /** diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/handler/WebSocketHttpHeadersTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/handler/WebSocketHttpHeadersTests.java index b0ec0244d780..ff790d21d076 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/handler/WebSocketHttpHeadersTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/handler/WebSocketHttpHeadersTests.java @@ -33,6 +33,7 @@ import static org.springframework.http.MediaType.TEXT_PLAIN; import static org.springframework.http.MediaType.TEXT_PLAIN_VALUE; import static org.springframework.web.socket.WebSocketHttpHeaders.SEC_WEBSOCKET_EXTENSIONS; +import static org.springframework.web.socket.WebSocketHttpHeaders.SEC_WEBSOCKET_PROTOCOL; /** * Tests for {@link WebSocketHttpHeaders}. @@ -142,6 +143,14 @@ void parseWebSocketExtensions() { assertThat(parsedExtensions).hasSize(3); } + @Test // gh-37282 + void getSecWebSocketProtocolWithMultipleHeaderValues() { + this.headers.add(SEC_WEBSOCKET_PROTOCOL, "foo"); + this.headers.add(SEC_WEBSOCKET_PROTOCOL, "bar, baz"); + + assertThat(this.headers.getSecWebSocketProtocol()).containsExactly("foo", "bar", "baz"); + } + @Test // gh-35792 void addAllViaWebSocketHttpHeadersApi() { headers.add("green", "grape");