Skip to content

Commit ccdd522

Browse files
committed
Bug: 482187 - HTTP headers should be case-insensitive for websockets
Converting WebSocket HTTP headers to lowercase & perform checks as lowercase to allow HTTP servers that do not follow normal Header conventions Signed-off-by: James Sutton <james.sutton@uk.ibm.com>
1 parent e41c4cb commit ccdd522

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

  • org.eclipse.paho.client.mqttv3/src/main/java/org/eclipse/paho/client/mqttv3/internal/websocket

org.eclipse.paho.client.mqttv3/src/main/java/org/eclipse/paho/client/mqttv3/internal/websocket/WebSocketHandshake.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,12 @@ private void receiveHandshakeResponse(String key) throws IOException {
104104
throw new IOException("WebSocket Response header: Incorrect upgrade.");
105105
}
106106

107-
if(!headerMap.containsKey(HTTP_HEADER_SEC_WEBSOCKET_ACCEPT)){
107+
if(!headerMap.containsKey(HTTP_HEADER_SEC_WEBSOCKET_ACCEPT.toLowerCase())){
108108
throw new IOException("WebSocket Response header: Missing Sec-WebSocket-Accept");
109109
}
110110

111111
try {
112-
verifyWebSocketKey(key, (String)headerMap.get(HTTP_HEADER_SEC_WEBSOCKET_ACCEPT));
112+
verifyWebSocketKey(key, (String)headerMap.get(HTTP_HEADER_SEC_WEBSOCKET_ACCEPT.toLowerCase()));
113113
} catch (NoSuchAlgorithmException e) {
114114
throw new IOException(e.getMessage());
115115
} catch (HandshakeFailedException e) {
@@ -128,7 +128,7 @@ private Map getHeaders(ArrayList headers){
128128
for(int i = 1; i < headers.size(); i++){
129129
String headerPre = (String) headers.get(i);
130130
String[] header = headerPre.split(":");
131-
headerMap.put(header[0], header[1]);
131+
headerMap.put(header[0].toLowerCase(), header[1]);
132132
}
133133
return headerMap;
134134
}

0 commit comments

Comments
 (0)