Example usage for org.springframework.messaging.simp SimpMessageHeaderAccessor getUser

List of usage examples for org.springframework.messaging.simp SimpMessageHeaderAccessor getUser

Introduction

In this page you can find the example usage for org.springframework.messaging.simp SimpMessageHeaderAccessor getUser.

Prototype

@Nullable
    public static Principal getUser(Map<String, Object> headers) 

Source Link

Usage

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);
}