Skip to content

Commit f5f3f66

Browse files
committed
Add user-name header to CONNECTED frame
1 parent bd68fef commit f5f3f66

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompWebSocketHandler.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,13 @@
4343
*/
4444
public class StompWebSocketHandler extends TextWebSocketHandlerAdapter implements MessageHandler {
4545

46+
/**
47+
* The name of the header set on the CONNECTED frame indicating the name of the user
48+
* connected authenticated on the WebSocket session.
49+
*/
50+
public static final String CONNECTED_USER_HEADER = "user-name";
51+
52+
4653
private static final byte[] EMPTY_PAYLOAD = new byte[0];
4754

4855
private static Log logger = LogFactory.getLog(StompWebSocketHandler.class);
@@ -138,6 +145,10 @@ else if (acceptVersions.isEmpty()) {
138145
}
139146
connectedHeaders.setHeartbeat(0,0); // TODO
140147

148+
if (session.getPrincipal() != null) {
149+
connectedHeaders.setNativeHeader(CONNECTED_USER_HEADER, session.getPrincipal().getName());
150+
}
151+
141152
// TODO: security
142153

143154
Message<?> connectedMessage = MessageBuilder.withPayload(EMPTY_PAYLOAD).copyHeaders(

spring-messaging/src/main/java/org/springframework/messaging/support/NativeMessageHeaderAccessor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ else if (this.originalNativeHeaders != null) {
118118
return null;
119119
}
120120

121-
protected String getFirstNativeHeader(String headerName) {
121+
public String getFirstNativeHeader(String headerName) {
122122
List<String> values = getNativeHeader(headerName);
123123
return CollectionUtils.isEmpty(values) ? null : values.get(0);
124124
}
@@ -133,7 +133,7 @@ protected void putNativeHeader(String name, List<String> value) {
133133
}
134134
}
135135

136-
protected void setNativeHeader(String name, String value) {
136+
public void setNativeHeader(String name, String value) {
137137
this.nativeHeaders.set(name, value);
138138
}
139139

0 commit comments

Comments
 (0)