Skip to content

Commit 96e511a

Browse files
committed
Fix Issue-1053
1 parent d9b9565 commit 96e511a

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/main/java/org/java_websocket/drafts/Draft_6455.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ public HandshakeBuilder postProcessHandshakeResponseAsServer( ClientHandshake re
383383
response.put( UPGRADE, "websocket" );
384384
response.put( CONNECTION, request.getFieldValue( CONNECTION) ); // to respond to a Connection keep alives
385385
String seckey = request.getFieldValue(SEC_WEB_SOCKET_KEY);
386-
if( seckey == null )
386+
if( seckey == null || "".equals(seckey) )
387387
throw new InvalidHandshakeException( "missing Sec-WebSocket-Key" );
388388
response.put( SEC_WEB_SOCKET_ACCEPT, generateFinalKey( seckey ) );
389389
if( getExtension().getProvidedExtensionAsServer().length() != 0 ) {

src/test/java/org/java_websocket/drafts/Draft_6455Test.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
import org.java_websocket.enums.CloseHandshakeType;
2929
import org.java_websocket.enums.HandshakeState;
30+
import org.java_websocket.exceptions.InvalidHandshakeException;
3031
import org.java_websocket.extensions.DefaultExtension;
3132
import org.java_websocket.extensions.IExtension;
3233
import org.java_websocket.framing.BinaryFrame;
@@ -459,6 +460,19 @@ public void postProcessHandshakeResponseAsServer() throws Exception {
459460
draft_6455.postProcessHandshakeResponseAsServer(request, response);
460461
assertEquals( "test", response.getFieldValue( "Sec-WebSocket-Protocol" ) );
461462
assertTrue( !response.hasFieldValue( "Sec-WebSocket-Extensions" ) );
463+
464+
// issue #1053 : check the exception - missing Sec-WebSocket-Key
465+
response = new HandshakeImpl1Server();
466+
request = new HandshakeImpl1Client();
467+
draft_6455.reset();
468+
request.put( "Connection", "upgrade" );
469+
470+
try {
471+
draft_6455.postProcessHandshakeResponseAsServer(request, response);
472+
fail( "InvalidHandshakeException should be thrown" );
473+
} catch ( InvalidHandshakeException e ) {
474+
475+
}
462476
}
463477

464478

@@ -517,4 +531,4 @@ public boolean equals( Object o ) {
517531
return getClass() == o.getClass();
518532
}
519533
}
520-
}
534+
}

0 commit comments

Comments
 (0)