Add user-name header to CONNECTED frame
This commit is contained in:
parent
bd68fefc6f
commit
f5f3f66b13
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue