List of usage examples for org.springframework.messaging.simp SimpMessageHeaderAccessor getUser
@Nullable public static Principal getUser(Map<String, Object> headers)
From source file:sample.websocket.WebSocketConnectHandler.java
public void onApplicationEvent(SessionConnectEvent event) { MessageHeaders headers = event.getMessage().getHeaders(); Principal user = SimpMessageHeaderAccessor.getUser(headers); if (user == null) { return;/*from ww w .j a v a 2s . c o m*/ } String id = SimpMessageHeaderAccessor.getSessionId(headers); this.repository.save(new ActiveWebSocketUser(id, user.getName(), Calendar.getInstance())); this.messagingTemplate.convertAndSend("/topic/friends/signin", Arrays.asList(user.getName())); }
From source file:org.springframework.messaging.simp.user.DefaultUserDestinationResolver.java
@Nullable private ParseResult parseSubscriptionMessage(Message<?> message, String sourceDestination) { MessageHeaders headers = message.getHeaders(); String sessionId = SimpMessageHeaderAccessor.getSessionId(headers); if (sessionId == null) { logger.error("No session id. Ignoring " + message); return null; }//from w w w . j a va 2 s.com int prefixEnd = this.prefix.length() - 1; String actualDestination = sourceDestination.substring(prefixEnd); if (isRemoveLeadingSlash()) { actualDestination = actualDestination.substring(1); } Principal principal = SimpMessageHeaderAccessor.getUser(headers); String user = (principal != null ? principal.getName() : null); Set<String> sessionIds = Collections.singleton(sessionId); return new ParseResult(sourceDestination, actualDestination, sourceDestination, sessionIds, user); }