From 2425ed2f427fc189b21934bb62d8c08ecc4a83ed Mon Sep 17 00:00:00 2001 From: tvallin Date: Wed, 17 Apr 2024 15:52:25 +0200 Subject: [PATCH] WsClient accept connection upgrade lowercase Signed-off-by: tvallin --- .../java/io/helidon/webclient/websocket/WsClientImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/webclient/websocket/src/main/java/io/helidon/webclient/websocket/WsClientImpl.java b/webclient/websocket/src/main/java/io/helidon/webclient/websocket/WsClientImpl.java index 6c9717eed01..ab3c4839295 100644 --- a/webclient/websocket/src/main/java/io/helidon/webclient/websocket/WsClientImpl.java +++ b/webclient/websocket/src/main/java/io/helidon/webclient/websocket/WsClientImpl.java @@ -55,6 +55,7 @@ class WsClientImpl implements WsClient { private static final System.Logger LOGGER = System.getLogger(WsClient.class.getName()); private static final Header HEADER_CONN_UPGRADE = HeaderValues.create(HeaderNames.CONNECTION, "Upgrade"); + private static final Header HEADER_CONN_UPGRADE_LOWERCASE = HeaderValues.create(HeaderNames.CONNECTION, "upgrade"); private static final HeaderName HEADER_WS_ACCEPT = HeaderNames.create("Sec-WebSocket-Accept"); private static final HeaderName HEADER_WS_KEY = HeaderNames.create("Sec-WebSocket-Key"); private static final LazyValue RANDOM = LazyValue.create(SecureRandom::new); @@ -127,7 +128,8 @@ public void connect(URI uri, WsListener listener) { ClientWsConnection session; try (HttpClientResponse response = upgradeResponse.response()) { ClientResponseHeaders responseHeaders = response.headers(); - if (!responseHeaders.contains(HEADER_CONN_UPGRADE)) { + if (!responseHeaders.contains(HEADER_CONN_UPGRADE) + && !responseHeaders.contains(HEADER_CONN_UPGRADE_LOWERCASE)) { throw new WsClientException("Failed to upgrade to WebSocket, expected Connection: Upgrade header. Headers: " + responseHeaders); }