diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/server/support/WebSocketHttpRequestHandler.java b/spring-websocket/src/main/java/org/springframework/web/socket/server/support/WebSocketHttpRequestHandler.java index d4abeba3ace9..1399bf7617cb 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/server/support/WebSocketHttpRequestHandler.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/server/support/WebSocketHttpRequestHandler.java @@ -77,10 +77,20 @@ public WebSocketHttpRequestHandler(WebSocketHandler wsHandler) { public WebSocketHttpRequestHandler(WebSocketHandler wsHandler, HandshakeHandler handshakeHandler) { Assert.notNull(wsHandler, "wsHandler must not be null"); Assert.notNull(handshakeHandler, "handshakeHandler must not be null"); - this.wsHandler = new ExceptionWebSocketHandlerDecorator(new LoggingWebSocketHandlerDecorator(wsHandler)); + this.wsHandler = decorate(wsHandler); this.handshakeHandler = handshakeHandler; } + /** + * Decorate the {@code WebSocketHandler} passed into the constructor. + *

By default, {@link LoggingWebSocketHandlerDecorator} and + * {@link ExceptionWebSocketHandlerDecorator} are added. + * @since 5.2.2 + */ + protected WebSocketHandler decorate(WebSocketHandler handler) { + return new ExceptionWebSocketHandlerDecorator(new LoggingWebSocketHandlerDecorator(handler)); + } + /** * Return the WebSocketHandler.