Add client login/passcode to broker relay
Issue: SPR-11154
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright 2002-2013 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.messaging.simp.config;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.messaging.MessageChannel;
|
||||
import org.springframework.messaging.StubMessageChannel;
|
||||
import org.springframework.messaging.SubscribableChannel;
|
||||
import org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static org.junit.Assert.assertArrayEquals;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link org.springframework.messaging.simp.config.StompBrokerRelayRegistration}.
|
||||
*
|
||||
* @author Rossen Stoyanchev
|
||||
*/
|
||||
public class StompBrokerRelayRegistrationTests {
|
||||
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
SubscribableChannel clientInboundChannel = new StubMessageChannel();
|
||||
MessageChannel clientOutboundChannel = new StubMessageChannel();
|
||||
SubscribableChannel brokerChannel = new StubMessageChannel();
|
||||
|
||||
String[] destinationPrefixes = new String[] { "/foo", "/bar" };
|
||||
|
||||
StompBrokerRelayRegistration registration = new StompBrokerRelayRegistration(
|
||||
clientInboundChannel, clientOutboundChannel, destinationPrefixes);
|
||||
|
||||
registration.setClientLogin("clientlogin");
|
||||
registration.setClientPasscode("clientpasscode");
|
||||
registration.setSystemLogin("syslogin");
|
||||
registration.setSystemPasscode("syspasscode");
|
||||
registration.setSystemHeartbeatReceiveInterval(123);
|
||||
registration.setSystemHeartbeatSendInterval(456);
|
||||
|
||||
StompBrokerRelayMessageHandler relayMessageHandler = registration.getMessageHandler(brokerChannel);
|
||||
|
||||
assertEquals(Arrays.asList(destinationPrefixes), relayMessageHandler.getDestinationPrefixes());
|
||||
assertEquals("clientlogin", relayMessageHandler.getClientLogin());
|
||||
assertEquals("clientpasscode", relayMessageHandler.getClientPasscode());
|
||||
assertEquals("syslogin", relayMessageHandler.getSystemLogin());
|
||||
assertEquals("syspasscode", relayMessageHandler.getSystemPasscode());
|
||||
assertEquals(123, relayMessageHandler.getSystemHeartbeatReceiveInterval());
|
||||
assertEquals(456, relayMessageHandler.getSystemHeartbeatSendInterval());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -50,9 +50,7 @@ public class StompBrokerRelayMessageHandlerTests {
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
|
||||
this.tcpClient = new StubTcpOperations();
|
||||
|
||||
this.brokerRelay = new StompBrokerRelayMessageHandler(new StubMessageChannel(),
|
||||
new StubMessageChannel(), new StubMessageChannel(), Arrays.asList("/topic"));
|
||||
this.brokerRelay.setTcpClient(this.tcpClient);
|
||||
@@ -83,6 +81,35 @@ public class StompBrokerRelayMessageHandlerTests {
|
||||
assertEquals(virtualHost, headers2.getHost());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoginPasscode() {
|
||||
|
||||
String sessionId = "sess1";
|
||||
|
||||
StompHeaderAccessor headers = StompHeaderAccessor.create(StompCommand.CONNECT);
|
||||
headers.setSessionId(sessionId);
|
||||
|
||||
this.brokerRelay.setClientLogin("clientlogin");
|
||||
this.brokerRelay.setClientPasscode("clientpasscode");
|
||||
|
||||
this.brokerRelay.setSystemLogin("syslogin");
|
||||
this.brokerRelay.setSystemPasscode("syspasscode");
|
||||
|
||||
this.brokerRelay.start();
|
||||
this.brokerRelay.handleMessage(MessageBuilder.withPayload(new byte[0]).setHeaders(headers).build());
|
||||
|
||||
List<Message<byte[]>> sent = this.tcpClient.connection.messages;
|
||||
assertEquals(2, sent.size());
|
||||
|
||||
StompHeaderAccessor headers1 = StompHeaderAccessor.wrap(sent.get(0));
|
||||
assertEquals("syslogin", headers1.getLogin());
|
||||
assertEquals("syspasscode", headers1.getPasscode());
|
||||
|
||||
StompHeaderAccessor headers2 = StompHeaderAccessor.wrap(sent.get(1));
|
||||
assertEquals("clientlogin", headers2.getLogin());
|
||||
assertEquals("clientpasscode", headers2.getPasscode());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDestinationExcluded() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user