2929import org .springframework .util .MultiValueMap ;
3030import org .springframework .web .HttpRequestHandler ;
3131import org .springframework .web .socket .messaging .SubProtocolWebSocketHandler ;
32+ import org .springframework .web .socket .server .HandshakeInterceptor ;
3233import org .springframework .web .socket .server .support .DefaultHandshakeHandler ;
34+ import org .springframework .web .socket .server .support .HttpSessionHandshakeInterceptor ;
3335import org .springframework .web .socket .server .support .WebSocketHttpRequestHandler ;
3436import org .springframework .web .socket .sockjs .support .SockJsHttpRequestHandler ;
3537import org .springframework .web .socket .sockjs .transport .TransportHandler ;
3840import org .springframework .web .socket .sockjs .transport .handler .WebSocketTransportHandler ;
3941
4042import static org .junit .Assert .*;
43+ import static org .junit .Assert .assertArrayEquals ;
44+ import static org .junit .Assert .assertEquals ;
4145import static org .mockito .Mockito .mock ;
4246
4347/**
@@ -73,12 +77,15 @@ public void minimalRegistration() {
7377 }
7478
7579 @ Test
76- public void customHandshakeHandler () {
80+ public void handshakeHandlerAndInterceptors () {
7781 WebMvcStompWebSocketEndpointRegistration registration =
7882 new WebMvcStompWebSocketEndpointRegistration (new String [] {"/foo" }, this .handler , this .scheduler );
7983
8084 DefaultHandshakeHandler handshakeHandler = new DefaultHandshakeHandler ();
85+ HttpSessionHandshakeInterceptor interceptor = new HttpSessionHandshakeInterceptor ();
86+
8187 registration .setHandshakeHandler (handshakeHandler );
88+ registration .addInterceptors (interceptor );
8289
8390 MultiValueMap <HttpRequestHandler , String > mappings = registration .getMappings ();
8491 assertEquals (1 , mappings .size ());
@@ -89,15 +96,19 @@ public void customHandshakeHandler() {
8996 WebSocketHttpRequestHandler requestHandler = (WebSocketHttpRequestHandler ) entry .getKey ();
9097 assertNotNull (requestHandler .getWebSocketHandler ());
9198 assertSame (handshakeHandler , requestHandler .getHandshakeHandler ());
99+ assertEquals (Arrays .asList (interceptor ), requestHandler .getHandshakeInterceptors ());
92100 }
93101
94102 @ Test
95- public void customHandshakeHandlerPassedToSockJsService () {
103+ public void handshakeHandlerAndInterceptorsWithSockJsService () {
96104 WebMvcStompWebSocketEndpointRegistration registration =
97105 new WebMvcStompWebSocketEndpointRegistration (new String [] {"/foo" }, this .handler , this .scheduler );
98106
99107 DefaultHandshakeHandler handshakeHandler = new DefaultHandshakeHandler ();
108+ HttpSessionHandshakeInterceptor interceptor = new HttpSessionHandshakeInterceptor ();
109+
100110 registration .setHandshakeHandler (handshakeHandler );
111+ registration .addInterceptors (interceptor );
101112 registration .withSockJS ();
102113
103114 MultiValueMap <HttpRequestHandler , String > mappings = registration .getMappings ();
@@ -115,6 +126,7 @@ public void customHandshakeHandlerPassedToSockJsService() {
115126 Map <TransportType , TransportHandler > handlers = sockJsService .getTransportHandlers ();
116127 WebSocketTransportHandler transportHandler = (WebSocketTransportHandler ) handlers .get (TransportType .WEBSOCKET );
117128 assertSame (handshakeHandler , transportHandler .getHandshakeHandler ());
129+ assertEquals (Arrays .asList (interceptor ), sockJsService .getHandshakeInterceptors ());
118130 }
119131
120132}
0 commit comments