Make livereload websocket headers case insensitive

Update livereload `Connection` handling code so that websocket headers
are no longer case sensitive.

See gh-26813
This commit is contained in:
Francis Lavoie
2021-06-08 05:36:13 -04:00
committed by Phillip Webb
parent a1e279f736
commit 8755512719

View File

@@ -41,7 +41,7 @@ class Connection {
private static final Log logger = LogFactory.getLog(Connection.class);
private static final Pattern WEBSOCKET_KEY_PATTERN = Pattern.compile("^Sec-WebSocket-Key:(.*)$", Pattern.MULTILINE);
private static final Pattern WEBSOCKET_KEY_PATTERN = Pattern.compile("^Sec-WebSocket-Key:(.*)$", Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
public static final String WEBSOCKET_GUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
@@ -77,7 +77,7 @@ class Connection {
* @throws Exception in case of errors
*/
void run() throws Exception {
if (this.header.contains("Upgrade: websocket") && this.header.contains("Sec-WebSocket-Version: 13")) {
if (this.header.contains("Upgrade: websocket") && this.header.toLowerCase().contains("sec-websocket-version: 13")) {
runWebSocket();
}
if (this.header.contains("GET /livereload.js")) {