diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/server/standard/AbstractStandardUpgradeStrategy.java b/spring-websocket/src/main/java/org/springframework/web/socket/server/standard/AbstractStandardUpgradeStrategy.java index 35c072fcd21..7f1115d4638 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/server/standard/AbstractStandardUpgradeStrategy.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/server/standard/AbstractStandardUpgradeStrategy.java @@ -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 private volatile List extensions; - @Override - public List 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,6 +70,26 @@ public abstract class AbstractStandardUpgradeStrategy implements RequestUpgradeS return container; } + protected final HttpServletRequest getHttpServletRequest(ServerHttpRequest request) { + Assert.isTrue(request instanceof ServletServerHttpRequest); + return ((ServletServerHttpRequest) request).getServletRequest(); + } + + protected final HttpServletResponse getHttpServletResponse(ServerHttpResponse response) { + Assert.isTrue(response instanceof ServletServerHttpResponse); + return ((ServletServerHttpResponse) response).getServletResponse(); + } + + + @Override + public List getSupportedExtensions(ServerHttpRequest request) { + if (this.extensions == null) { + HttpServletRequest servletRequest = ((ServletServerHttpRequest) request).getServletRequest(); + this.extensions = getInstalledExtensions(getContainer(servletRequest)); + } + return this.extensions; + } + protected List getInstalledExtensions(WebSocketContainer container) { List result = new ArrayList(); for (Extension ext : container.getInstalledExtensions()) { @@ -87,15 +98,6 @@ public abstract class AbstractStandardUpgradeStrategy implements RequestUpgradeS return result; } - protected final HttpServletResponse getHttpServletResponse(ServerHttpResponse response) { - Assert.isTrue(response instanceof ServletServerHttpResponse); - return ((ServletServerHttpResponse) response).getServletResponse(); - } - - protected final HttpServletRequest getHttpServletRequest(ServerHttpRequest request) { - Assert.isTrue(request instanceof ServletServerHttpRequest); - return ((ServletServerHttpRequest) request).getServletRequest(); - } @Override public void upgrade(ServerHttpRequest request, ServerHttpResponse response, @@ -103,7 +105,6 @@ public abstract class AbstractStandardUpgradeStrategy implements RequestUpgradeS WebSocketHandler wsHandler, Map attrs) throws HandshakeFailureException { HttpHeaders headers = request.getHeaders(); - InetSocketAddress localAddr = request.getLocalAddress(); InetSocketAddress remoteAddr = request.getRemoteAddress();