@ -48,8 +48,8 @@ import org.springframework.web.socket.server.HandshakeFailureException;
@@ -48,8 +48,8 @@ import org.springframework.web.socket.server.HandshakeFailureException;
import org.springframework.web.socket.server.RequestUpgradeStrategy ;
/ * *
* A base class for { @link RequestUpgradeStrategy } implementations that build on the
* standard WebSocket API for Java .
* A base class for { @link RequestUpgradeStrategy } implementations that build
* on the standard WebSocket API for Java ( JSR - 356 ) .
*
* @author Rossen Stoyanchev
* @since 4 . 0
@ -61,15 +61,6 @@ public abstract class AbstractStandardUpgradeStrategy implements RequestUpgradeS
@@ -61,15 +61,6 @@ public abstract class AbstractStandardUpgradeStrategy implements RequestUpgradeS
private volatile List < WebSocketExtension > extensions ;
@Override
public List < WebSocketExtension > getSupportedExtensions ( ServerHttpRequest request ) {
if ( this . extensions = = null ) {
HttpServletRequest servletRequest = ( ( ServletServerHttpRequest ) request ) . getServletRequest ( ) ;
this . extensions = getInstalledExtensions ( getContainer ( servletRequest ) ) ;
}
return this . extensions ;
}
protected ServerContainer getContainer ( HttpServletRequest request ) {
ServletContext servletContext = request . getServletContext ( ) ;
String attrName = "javax.websocket.server.ServerContainer" ;
@ -79,12 +70,9 @@ public abstract class AbstractStandardUpgradeStrategy implements RequestUpgradeS
@@ -79,12 +70,9 @@ public abstract class AbstractStandardUpgradeStrategy implements RequestUpgradeS
return container ;
}
protected List < WebSocketExtension > getInstalledExtensions ( WebSocketContainer container ) {
List < WebSocketExtension > result = new ArrayList < WebSocketExtension > ( ) ;
for ( Extension ext : container . getInstalledExtensions ( ) ) {
result . add ( new StandardToWebSocketExtensionAdapter ( ext ) ) ;
}
return result ;
protected final HttpServletRequest getHttpServletRequest ( ServerHttpRequest request ) {
Assert . isTrue ( request instanceof ServletServerHttpRequest ) ;
return ( ( ServletServerHttpRequest ) request ) . getServletRequest ( ) ;
}
protected final HttpServletResponse getHttpServletResponse ( ServerHttpResponse response ) {
@ -92,18 +80,31 @@ public abstract class AbstractStandardUpgradeStrategy implements RequestUpgradeS
@@ -92,18 +80,31 @@ public abstract class AbstractStandardUpgradeStrategy implements RequestUpgradeS
return ( ( ServletServerHttpResponse ) response ) . getServletResponse ( ) ;
}
protected final HttpServletRequest getHttpServletRequest ( ServerHttpRequest request ) {
Assert . isTrue ( request instanceof ServletServerHttpRequest ) ;
return ( ( ServletServerHttpRequest ) request ) . getServletRequest ( ) ;
@Override
public List < WebSocketExtension > getSupportedExtensions ( ServerHttpRequest request ) {
if ( this . extensions = = null ) {
HttpServletRequest servletRequest = ( ( ServletServerHttpRequest ) request ) . getServletRequest ( ) ;
this . extensions = getInstalledExtensions ( getContainer ( servletRequest ) ) ;
}
return this . extensions ;
}
protected List < WebSocketExtension > getInstalledExtensions ( WebSocketContainer container ) {
List < WebSocketExtension > result = new ArrayList < WebSocketExtension > ( ) ;
for ( Extension ext : container . getInstalledExtensions ( ) ) {
result . add ( new StandardToWebSocketExtensionAdapter ( ext ) ) ;
}
return result ;
}
@Override
public void upgrade ( ServerHttpRequest request , ServerHttpResponse response ,
String selectedProtocol , List < WebSocketExtension > selectedExtensions , Principal user ,
WebSocketHandler wsHandler , Map < String , Object > attrs ) throws HandshakeFailureException {
HttpHeaders headers = request . getHeaders ( ) ;
InetSocketAddress localAddr = request . getLocalAddress ( ) ;
InetSocketAddress remoteAddr = request . getRemoteAddress ( ) ;