Skip to content

Commit 1a89363

Browse files
committed
Restore host header initialization in StompBrokerRelayMessageHandler
Closes gh-36907
1 parent 34a307d commit 1a89363

2 files changed

Lines changed: 23 additions & 2 deletions

File tree

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ protected void startInternal() {
456456
accessor.setLogin(this.systemLogin);
457457
accessor.setPasscode(this.systemPasscode);
458458
accessor.setHeartbeat(this.systemHeartbeatSendInterval, this.systemHeartbeatReceiveInterval);
459-
accessor.setHost(getVirtualHost() != null ? getVirtualHost() : getRelayHost());
459+
accessor.setHost(getVirtualHost() != null ? getVirtualHost() : null);
460460
accessor.setSessionId(SYSTEM_SESSION_ID);
461461
if (logger.isDebugEnabled()) {
462462
logger.debug("Forwarding " + accessor.getShortLogMessage(EMPTY_PAYLOAD));
@@ -579,7 +579,7 @@ else if (accessor instanceof SimpMessageHeaderAccessor) {
579579
stompHeaderAccessor = (stompHeaderAccessor.isMutable() ? stompHeaderAccessor : StompHeaderAccessor.wrap(message));
580580
stompHeaderAccessor.setLogin(this.clientLogin);
581581
stompHeaderAccessor.setPasscode(this.clientPasscode);
582-
stompHeaderAccessor.setHost(getVirtualHost() != null ? getVirtualHost() : getRelayHost());
582+
stompHeaderAccessor.setHost(getVirtualHost() != null ? getVirtualHost() : null);
583583
RelayConnectionHandler handler = new RelayConnectionHandler(sessionId, stompHeaderAccessor);
584584
this.connectionHandlers.put(sessionId, handler);
585585
this.stats.incrementConnectCount();

‎spring-messaging/src/test/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandlerTests.java‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,27 @@ void virtualHost() {
9898
assertThat(headers2.getHost()).isEqualTo("ABC");
9999
}
100100

101+
@Test
102+
void virtualHostDefault() {
103+
Message<byte[]> connectMessage = connectMessage("sess1", "joe");
104+
MessageHeaderAccessor.getAccessor(connectMessage, StompHeaderAccessor.class).setHost("ABC");
105+
106+
this.brokerRelay.start();
107+
this.brokerRelay.handleMessage(connectMessage("sess1", "joe"));
108+
109+
assertThat(this.tcpClient.getSentMessages()).hasSize(2);
110+
111+
StompHeaderAccessor headers1 = this.tcpClient.getSentHeaders(0);
112+
assertThat(headers1.getCommand()).isEqualTo(StompCommand.CONNECT);
113+
assertThat(headers1.getSessionId()).isEqualTo(StompBrokerRelayMessageHandler.SYSTEM_SESSION_ID);
114+
assertThat(headers1.getHost()).isNull();
115+
116+
StompHeaderAccessor headers2 = this.tcpClient.getSentHeaders(1);
117+
assertThat(headers2.getCommand()).isEqualTo(StompCommand.CONNECT);
118+
assertThat(headers2.getSessionId()).isEqualTo("sess1");
119+
assertThat(headers2.getHost()).isNull();
120+
}
121+
101122
@Test
102123
void loginAndPasscode() {
103124
this.brokerRelay.setSystemLogin("syslogin");

0 commit comments

Comments
 (0)