提交 f5f3f66b 编写于 作者: R Rossen Stoyanchev

Add user-name header to CONNECTED frame

上级 bd68fefc
......@@ -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);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册