Add user-name header to CONNECTED frame

This commit is contained in:
Rossen Stoyanchev 2013-07-12 19:42:31 -04:00
parent bd68fefc6f
commit f5f3f66b13
2 changed files with 13 additions and 2 deletions

View File

@ -43,6 +43,13 @@ import reactor.util.Assert;
*/
public class StompWebSocketHandler extends TextWebSocketHandlerAdapter implements MessageHandler {
/**
* The name of the header set on the CONNECTED frame indicating the name of the user
* connected authenticated on the WebSocket session.
*/
public static final String CONNECTED_USER_HEADER = "user-name";
private static final byte[] EMPTY_PAYLOAD = new byte[0];
private static Log logger = LogFactory.getLog(StompWebSocketHandler.class);
@ -138,6 +145,10 @@ public class StompWebSocketHandler extends TextWebSocketHandlerAdapter implement
}
connectedHeaders.setHeartbeat(0,0); // TODO
if (session.getPrincipal() != null) {
connectedHeaders.setNativeHeader(CONNECTED_USER_HEADER, session.getPrincipal().getName());
}
// TODO: security
Message<?> connectedMessage = MessageBuilder.withPayload(EMPTY_PAYLOAD).copyHeaders(

View File

@ -118,7 +118,7 @@ public class NativeMessageHeaderAccessor extends MessageHeaderAccessor {
return null;
}
protected String getFirstNativeHeader(String headerName) {
public String getFirstNativeHeader(String headerName) {
List<String> values = getNativeHeader(headerName);
return CollectionUtils.isEmpty(values) ? null : values.get(0);
}
@ -133,7 +133,7 @@ public class NativeMessageHeaderAccessor extends MessageHeaderAccessor {
}
}
protected void setNativeHeader(String name, String value) {
public void setNativeHeader(String name, String value) {
this.nativeHeaders.set(name, value);
}