@Override public void setSubscriptionId(@Nullable String subscriptionId) { super.setSubscriptionId(subscriptionId); trySetStompHeaderForSubscriptionId(); }
initHeaders(headerAccessor); headerAccessor.setSessionId(sessionId); headerAccessor.setSubscriptionId(subscriptionId); headerAccessor.copyHeadersIfAbsent(message.getHeaders()); headerAccessor.setLeaveMutable(true);
private MessageHeaders createHeaders(@Nullable String sessionId, String subscriptionId, MethodParameter returnType) { SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create(SimpMessageType.MESSAGE); if (getHeaderInitializer() != null) { getHeaderInitializer().initHeaders(accessor); } if (sessionId != null) { accessor.setSessionId(sessionId); } accessor.setSubscriptionId(subscriptionId); accessor.setHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER, returnType); accessor.setLeaveMutable(true); return accessor.getMessageHeaders(); }
private Message<?> unsubscribeMessage(String sessionId, String subscriptionId) { SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create(SimpMessageType.UNSUBSCRIBE); accessor.setSessionId(sessionId); accessor.setSubscriptionId(subscriptionId); return MessageBuilder.createMessage("", accessor.getMessageHeaders()); }
void updateSimpMessageHeadersFromStompHeaders() { if (getNativeHeaders() == null) { return; } String value = getFirstNativeHeader(STOMP_DESTINATION_HEADER); if (value != null) { super.setDestination(value); } value = getFirstNativeHeader(STOMP_CONTENT_TYPE_HEADER); if (value != null) { super.setContentType(MimeTypeUtils.parseMimeType(value)); } StompCommand command = getCommand(); if (StompCommand.MESSAGE.equals(command)) { value = getFirstNativeHeader(STOMP_SUBSCRIPTION_HEADER); if (value != null) { super.setSubscriptionId(value); } } else if (StompCommand.SUBSCRIBE.equals(command) || StompCommand.UNSUBSCRIBE.equals(command)) { value = getFirstNativeHeader(STOMP_ID_HEADER); if (value != null) { super.setSubscriptionId(value); } } else if (StompCommand.CONNECT.equals(command)) { protectPasscode(); } }
private Message<byte[]> createMessage(SimpMessageType type, String sessionId, String subscriptionId, String destination) { SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create(type); accessor.setSessionId(sessionId); if (destination != null) { accessor.setDestination(destination); } if (subscriptionId != null) { accessor.setSubscriptionId(subscriptionId); } return MessageBuilder.createMessage(new byte[0], accessor.getMessageHeaders()); }
private Message<String> createSubscriptionMessage(String sessionId, String subscriptionId, String destination) { SimpMessageHeaderAccessor headers = SimpMessageHeaderAccessor.create(SimpMessageType.SUBSCRIBE); headers.setSubscriptionId(subscriptionId); headers.setDestination(destination); headers.setSessionId(sessionId); return MessageBuilder.createMessage("", headers.getMessageHeaders()); }
private Message<?> subscribeMessage(String sessionId, String subscriptionId, String dest, String selector) { SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create(SimpMessageType.SUBSCRIBE); accessor.setSessionId(sessionId); accessor.setSubscriptionId(subscriptionId); if (dest != null) { accessor.setDestination(dest); } if (selector != null) { accessor.setNativeHeader("selector", selector); } return MessageBuilder.createMessage("", accessor.getMessageHeaders()); }
@Test public void getLogMessageWithValuesSet() { SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create(); accessor.setDestination("/destination"); accessor.setSubscriptionId("subscription"); accessor.setSessionId("session"); accessor.setUser(new TestPrincipal("user")); accessor.setSessionAttributes(Collections.<String, Object>singletonMap("key", "value")); assertEquals("MESSAGE destination=/destination subscriptionId=subscription " + "session=session user=user attributes[1] payload=p", accessor.getShortLogMessage("p")); }
@Test // SPR-12170 public void sendToWithDestinationPlaceholders() throws Exception { given(this.messageChannel.send(any(Message.class))).willReturn(true); Map<String, String> vars = new LinkedHashMap<>(1); vars.put("roomName", "roomA"); String sessionId = "sess1"; SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create(); accessor.setSessionId(sessionId); accessor.setSubscriptionId("sub1"); accessor.setHeader(DestinationVariableMethodArgumentResolver.DESTINATION_TEMPLATE_VARIABLES_HEADER, vars); Message<?> message = MessageBuilder.createMessage(PAYLOAD, accessor.getMessageHeaders()); this.handler.handleReturnValue(PAYLOAD, this.sendToWithPlaceholdersReturnType, message); verify(this.messageChannel, times(1)).send(this.messageCaptor.capture()); SimpMessageHeaderAccessor actual = getCapturedAccessor(0); assertEquals(sessionId, actual.getSessionId()); assertEquals("/topic/chat.message.filtered.roomA", actual.getDestination()); }
private Message<?> createMessage(String sessId, String subsId, String destPrefix, String dest, Principal user) { SimpMessageHeaderAccessor headerAccessor = SimpMessageHeaderAccessor.create(); headerAccessor.setSessionId(sessId); headerAccessor.setSubscriptionId(subsId); if (dest != null && destPrefix != null) { headerAccessor.setDestination(destPrefix + dest); headerAccessor.setHeader(DestinationPatternsMessageCondition.LOOKUP_DESTINATION_HEADER, dest); } if (user != null) { headerAccessor.setUser(user); } return MessageBuilder.createMessage(new byte[0], headerAccessor.getMessageHeaders()); }
@Test public void getDetailedLogMessageWithValuesSet() { SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create(); accessor.setDestination("/destination"); accessor.setSubscriptionId("subscription"); accessor.setSessionId("session"); accessor.setUser(new TestPrincipal("user")); accessor.setSessionAttributes(Collections.<String, Object>singletonMap("key", "value")); accessor.setNativeHeader("nativeKey", "nativeValue"); assertEquals("MESSAGE destination=/destination subscriptionId=subscription " + "session=session user=user attributes={key=value} nativeHeaders=" + "{nativeKey=[nativeValue]} payload=p", accessor.getDetailedLogMessage("p")); }
private Message<?> createInputMessage(String sessId, String subsId, String dest, Principal principal) { SimpMessageHeaderAccessor headers = SimpMessageHeaderAccessor.create(); headers.setSessionId(sessId); headers.setSubscriptionId(subsId); headers.setDestination(dest); headers.setUser(principal); return MessageBuilder.withPayload(new byte[0]).copyHeaders(headers.toMap()).build(); }
@Override public void setSubscriptionId(@Nullable String subscriptionId) { super.setSubscriptionId(subscriptionId); trySetStompHeaderForSubscriptionId(); }
initHeaders(headerAccessor); headerAccessor.setSessionId(sessionId); headerAccessor.setSubscriptionId(subscriptionId); headerAccessor.copyHeadersIfAbsent(message.getHeaders()); headerAccessor.setLeaveMutable(true);
private MessageHeaders createHeaders(@Nullable String sessionId, String subscriptionId, MethodParameter returnType) { SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create(SimpMessageType.MESSAGE); if (getHeaderInitializer() != null) { getHeaderInitializer().initHeaders(accessor); } if (sessionId != null) { accessor.setSessionId(sessionId); } accessor.setSubscriptionId(subscriptionId); accessor.setHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER, returnType); accessor.setLeaveMutable(true); return accessor.getMessageHeaders(); }
void updateSimpMessageHeadersFromStompHeaders() { if (getNativeHeaders() == null) { return; } String value = getFirstNativeHeader(STOMP_DESTINATION_HEADER); if (value != null) { super.setDestination(value); } value = getFirstNativeHeader(STOMP_CONTENT_TYPE_HEADER); if (value != null) { super.setContentType(MimeTypeUtils.parseMimeType(value)); } StompCommand command = getCommand(); if (StompCommand.MESSAGE.equals(command)) { value = getFirstNativeHeader(STOMP_SUBSCRIPTION_HEADER); if (value != null) { super.setSubscriptionId(value); } } else if (StompCommand.SUBSCRIBE.equals(command) || StompCommand.UNSUBSCRIBE.equals(command)) { value = getFirstNativeHeader(STOMP_ID_HEADER); if (value != null) { super.setSubscriptionId(value); } } else if (StompCommand.CONNECT.equals(command)) { protectPasscode(); } }
@Override public void setSubscriptionId(@Nullable String subscriptionId) { super.setSubscriptionId(subscriptionId); trySetStompHeaderForSubscriptionId(); }
@Override public void setSubscriptionId(@Nullable String subscriptionId) { super.setSubscriptionId(subscriptionId); trySetStompHeaderForSubscriptionId(); }
private MessageHeaders createHeaders(@Nullable String sessionId, String subscriptionId, MethodParameter returnType) { SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create(SimpMessageType.MESSAGE); if (getHeaderInitializer() != null) { getHeaderInitializer().initHeaders(accessor); } if (sessionId != null) { accessor.setSessionId(sessionId); } accessor.setSubscriptionId(subscriptionId); accessor.setHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER, returnType); accessor.setLeaveMutable(true); return accessor.getMessageHeaders(); }