From ceffda7874ddc6832c649554f56ce6769049543f Mon Sep 17 00:00:00 2001 From: rstoyanchev Date: Mon, 10 Feb 2025 09:44:09 +0000 Subject: [PATCH] Polishing contribution Closes gh-34362 --- .../web/socket/WebSocketHttpHeaders.java | 2 +- .../support/AbstractHandshakeHandler.java | 21 +++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) 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 1a4fac7f881..eed9f581e89 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2023 the original author or authors. + * Copyright 2002-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/server/support/AbstractHandshakeHandler.java b/spring-websocket/src/main/java/org/springframework/web/socket/server/support/AbstractHandshakeHandler.java index fce20644c16..a233c83a2c0 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/server/support/AbstractHandshakeHandler.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/server/support/AbstractHandshakeHandler.java @@ -228,10 +228,19 @@ public abstract class AbstractHandshakeHandler implements HandshakeHandler, Life handleInvalidUpgradeHeader(request, response); return false; } - if (!headers.getConnection().contains("Upgrade") && !headers.getConnection().contains("upgrade")) { + List connectionValue = headers.getConnection(); + if (!connectionValue.contains("Upgrade") && !connectionValue.contains("upgrade")) { handleInvalidConnectHeader(request, response); return false; } + String key = headers.getSecWebSocketKey(); + if (key == null) { + if (logger.isErrorEnabled()) { + logger.error("Missing \"Sec-WebSocket-Key\" header"); + } + response.setStatusCode(HttpStatus.BAD_REQUEST); + return false; + } } if (!isWebSocketVersionSupported(headers)) { handleWebSocketVersionNotSupported(request, response); @@ -241,16 +250,6 @@ public abstract class AbstractHandshakeHandler implements HandshakeHandler, Life response.setStatusCode(HttpStatus.FORBIDDEN); return false; } - if (HttpMethod.GET == httpMethod) { - String wsKey = headers.getSecWebSocketKey(); - if (wsKey == null) { - if (logger.isErrorEnabled()) { - logger.error("Missing \"Sec-WebSocket-Key\" header"); - } - response.setStatusCode(HttpStatus.BAD_REQUEST); - return false; - } - } } catch (IOException ex) { throw new HandshakeFailureException(