From 4af98515853ad7e20eb90cacfaef8aecb1a81862 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Thu, 18 Sep 2014 15:06:08 -0400 Subject: [PATCH] Add user to DISCONNECT in StompSubProtocolHandler Issue: SPR-12215 --- .../socket/messaging/StompSubProtocolHandler.java | 1 + .../messaging/StompSubProtocolHandlerTests.java | 13 +++++-------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/messaging/StompSubProtocolHandler.java b/spring-websocket/src/main/java/org/springframework/web/socket/messaging/StompSubProtocolHandler.java index d631e136fa6..d68df830c75 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/messaging/StompSubProtocolHandler.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/messaging/StompSubProtocolHandler.java @@ -469,6 +469,7 @@ public class StompSubProtocolHandler implements SubProtocolHandler, ApplicationE } headerAccessor.setSessionId(session.getId()); headerAccessor.setSessionAttributes(session.getAttributes()); + headerAccessor.setUser(session.getPrincipal()); return MessageBuilder.createMessage(EMPTY_PAYLOAD, headerAccessor.getMessageHeaders()); } diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/messaging/StompSubProtocolHandlerTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/messaging/StompSubProtocolHandlerTests.java index 99e01a6fab1..27e42fe85b9 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/messaging/StompSubProtocolHandlerTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/messaging/StompSubProtocolHandlerTests.java @@ -207,13 +207,7 @@ public class StompSubProtocolHandlerTests { @Test public void eventPublicationWithExceptions() { - ApplicationEventPublisher publisher = new ApplicationEventPublisher() { - - @Override - public void publishEvent(ApplicationEvent event) { - throw new IllegalStateException(); - } - }; + ApplicationEventPublisher publisher = mock(ApplicationEventPublisher.class); UserSessionRegistry registry = new DefaultUserSessionRegistry(); this.protocolHandler.setUserSessionRegistry(registry); @@ -244,7 +238,10 @@ public class StompSubProtocolHandlerTests { verify(this.channel).send(this.messageCaptor.capture()); actual = this.messageCaptor.getValue(); assertNotNull(actual); - assertEquals(StompCommand.DISCONNECT, StompHeaderAccessor.wrap(actual).getCommand()); + StompHeaderAccessor accessor = StompHeaderAccessor.wrap(actual); + assertEquals(StompCommand.DISCONNECT, accessor.getCommand()); + assertEquals("s1", accessor.getSessionId()); + assertEquals("joe", accessor.getUser().getName()); } @Test