Skip to content

Commit 496e03e

Browse files
Test mtls over amqp1.0
1 parent fcf3e6f commit 496e03e

File tree

3 files changed

+27
-3
lines changed

3 files changed

+27
-3
lines changed

selenium/amqp10-roundtriptest/src/main/java/com/rabbitmq/amqp1_0/RoundTripTest.java

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,39 @@ public class RoundTripTest {
1515
public static String getEnv(String property, String defaultValue) {
1616
return System.getenv(property) == null ? defaultValue : System.getenv(property);
1717
}
18+
public static String getEnv(String property) {
19+
String value = System.getenv(property);
20+
if (value == null) {
21+
throw new IllegalArgumentException("Missing env variable " + property);
22+
}
23+
return value;
24+
}
1825
public static void main(String args[]) throws Exception {
1926
String hostname = getEnv("RABBITMQ_HOSTNAME", "localhost");
2027
String port = getEnv("RABBITMQ_AMQP_PORT", "5672");
2128
String scheme = getEnv("RABBITMQ_AMQP_SCHEME", "amqp");
2229
String username = args.length > 0 ? args[0] : getEnv("RABBITMQ_AMQP_USERNAME", "guest");
2330
String password = args.length > 1 ? args[1] : getEnv("RABBITMQ_AMQP_PASSWORD", "guest");
2431
String uri = scheme + "://" + hostname + ":" + port;
32+
boolean usemtls = Boolean.parseBoolean(getEnv("AMQP_USE_MTLS", "false"));
33+
String certsLocation = getEnv("RABBITMQ_CERTS");
34+
35+
if ("amqps".equals(scheme)) {
36+
List<String> connectionParams = new ArrayList<String>();
2537

26-
System.out.println("AMQPS Roundrip using uri " + uri);
38+
connectionParams.add("transport.trustStoreLocation=" + certsLocation + "/truststore.jks");
39+
connectionParams.add("transport.trustStorePassword=foobar");
40+
connectionParams.add("transport.verifyHost=true");
41+
42+
if (usemtls) {
43+
connectionParams.add("transport.keyStoreLocation=" + certsLocation + "/rabbitmq.jks");
44+
connectionParams.add("transport.keyStorePassword=foobar");
45+
connectionParams.add("transport.keyAlias=rabbitmq-tls");
46+
}
47+
if (!connectionParams.isEmpty()) {
48+
uri += "?" + java.net.URLEncoder.encode(String.join("&", connectionParams));
49+
}
50+
}
2751

2852
Hashtable<Object, Object> env = new Hashtable<>();
2953
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.qpid.jms.jndi.JmsInitialContextFactory");

selenium/bin/components/rabbitmq

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ init_rabbitmq() {
1616
mkdir ${RABBITMQ_CONFIG_DIR}/certs
1717
fi
1818
generate-ca-server-client-kpi rabbitmq $RABBITMQ_CONFIG_DIR/certs
19+
generate-keystore-if-required rabbitmq $RABBITMQ_CONFIG_DIR/certs
1920
}
2021

2122
start_rabbitmq() {
@@ -186,8 +187,6 @@ start_docker_rabbitmq() {
186187
${RABBITMQ_DOCKER_IMAGE}
187188
#-v ${TEST_DIR}:/config \
188189

189-
docker exec rabbitmq ls /etc/rabbitmq/certs
190190
wait_for_message rabbitmq "Server startup complete"
191-
192191
end "RabbitMQ ready"
193192
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
export MQTT_USE_MTLS=true
2+
export AMQP_USE_MTLS=true

0 commit comments

Comments
 (0)