From b8342b3eca75ae13427177504f47d34656862191 Mon Sep 17 00:00:00 2001 From: Kabir Khan Date: Mon, 14 Nov 2022 16:25:53 +0100 Subject: [PATCH] [WFLY-15405] Don't hardcode the keystore location --- .../ConfigureElytronSslContextSetupTask.java | 2 +- .../reactive/RunArtemisAmqpSetupTask.java | 40 +++++++++++++++--- .../kafka/ssl/RunKafkaWithSslSetupTask.java | 2 +- .../reactive/messaging/amqp/broker-ssl.xml | 2 +- .../{kafka => ssl}/client.truststore.p12 | Bin .../{kafka => ssl}/server.keystore.p12 | Bin 6 files changed, 37 insertions(+), 9 deletions(-) rename testsuite/integration/microprofile/src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/{kafka => ssl}/client.truststore.p12 (100%) rename testsuite/integration/microprofile/src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/{kafka => ssl}/server.keystore.p12 (100%) diff --git a/testsuite/integration/microprofile/src/test/java/org/wildfly/test/integration/microprofile/reactive/ConfigureElytronSslContextSetupTask.java b/testsuite/integration/microprofile/src/test/java/org/wildfly/test/integration/microprofile/reactive/ConfigureElytronSslContextSetupTask.java index 435f3a0a5e66..2248f209fccf 100644 --- a/testsuite/integration/microprofile/src/test/java/org/wildfly/test/integration/microprofile/reactive/ConfigureElytronSslContextSetupTask.java +++ b/testsuite/integration/microprofile/src/test/java/org/wildfly/test/integration/microprofile/reactive/ConfigureElytronSslContextSetupTask.java @@ -34,7 +34,7 @@ */ public class ConfigureElytronSslContextSetupTask extends CLIServerSetupTask { private final String CLIENT_KEYSTORE = - "src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/kafka/client.truststore.p12"; + "src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/ssl/client.truststore.p12"; private final String KEYSTORE_PWD = "clientts"; @Override diff --git a/testsuite/integration/microprofile/src/test/java/org/wildfly/test/integration/microprofile/reactive/RunArtemisAmqpSetupTask.java b/testsuite/integration/microprofile/src/test/java/org/wildfly/test/integration/microprofile/reactive/RunArtemisAmqpSetupTask.java index c0f3abfa343d..c8f3b95a4947 100644 --- a/testsuite/integration/microprofile/src/test/java/org/wildfly/test/integration/microprofile/reactive/RunArtemisAmqpSetupTask.java +++ b/testsuite/integration/microprofile/src/test/java/org/wildfly/test/integration/microprofile/reactive/RunArtemisAmqpSetupTask.java @@ -22,12 +22,6 @@ package org.wildfly.test.integration.microprofile.reactive; -import static java.util.concurrent.TimeUnit.SECONDS; -import static org.awaitility.Awaitility.await; - -import java.net.URL; -import java.util.Set; - import org.apache.activemq.artemis.core.security.CheckType; import org.apache.activemq.artemis.core.security.Role; import org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ; @@ -35,6 +29,16 @@ import org.jboss.as.arquillian.api.ServerSetupTask; import org.jboss.as.arquillian.container.ManagementClient; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; + +import static java.util.concurrent.TimeUnit.SECONDS; +import static org.awaitility.Awaitility.await; + /** * Setup task to start an embedded version of Artemis for AMQP support. * I don't want to use the subsystem one because it means needing to run standalone-full.xml. Also, product does not @@ -63,6 +67,7 @@ public void setup(ManagementClient managementClient, String containerId) throws try { server = new EmbeddedActiveMQ(); URL url = RunArtemisAmqpSetupTask.class.getResource(brokerXml); + url = getBrokerXmlAndAdjustIfNeeded(); String brokerXml = url.toExternalForm(); server.setConfigResourcePath(brokerXml); server.setSecurityManager(new ActiveMQSecurityManager() { @@ -95,6 +100,29 @@ public void tearDown(ManagementClient managementClient, String containerId) thro } + private URL getBrokerXmlAndAdjustIfNeeded() throws Exception { + URL url = RunArtemisAmqpSetupTask.class.getResource(brokerXml); + List lines = Files.readAllLines(Path.of(url.toURI())); + List replacedLines = new LinkedList<>(); + + boolean replaced = false; + for (String line : lines) { + if (line.contains("$KEYSTORE$")) { + URL keystoreUrl = RunArtemisAmqpSetupTask.class.getResource("messaging/ssl/server.keystore.p12"); + line = line.replace("$KEYSTORE$", Path.of(keystoreUrl.toURI()).toAbsolutePath().toString()); + replaced = true; + } + replacedLines.add(line); + } + + if (replaced) { + Path path = Files.createTempFile("broker", ".xml"); + Files.write(path, replacedLines); + return path.toUri().toURL(); + } + return url; + } + public static void main(String[] args) throws Exception{ RunArtemisAmqpSetupTask task = new RunArtemisAmqpSetupTask(); task.setup(null, null); diff --git a/testsuite/integration/microprofile/src/test/java/org/wildfly/test/integration/microprofile/reactive/messaging/kafka/ssl/RunKafkaWithSslSetupTask.java b/testsuite/integration/microprofile/src/test/java/org/wildfly/test/integration/microprofile/reactive/messaging/kafka/ssl/RunKafkaWithSslSetupTask.java index 4bfde346f019..b6738311bb28 100644 --- a/testsuite/integration/microprofile/src/test/java/org/wildfly/test/integration/microprofile/reactive/messaging/kafka/ssl/RunKafkaWithSslSetupTask.java +++ b/testsuite/integration/microprofile/src/test/java/org/wildfly/test/integration/microprofile/reactive/messaging/kafka/ssl/RunKafkaWithSslSetupTask.java @@ -35,7 +35,7 @@ */ public class RunKafkaWithSslSetupTask extends RunKafkaSetupTask { private final String SERVER_KEYSTORE = - "src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/kafka/server.keystore.p12"; + "src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/ssl/server.keystore.p12"; private final String KEYSTORE_PWD = "serverks"; @Override diff --git a/testsuite/integration/microprofile/src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/amqp/broker-ssl.xml b/testsuite/integration/microprofile/src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/amqp/broker-ssl.xml index 095b48499a69..8bfa80eaabf4 100644 --- a/testsuite/integration/microprofile/src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/amqp/broker-ssl.xml +++ b/testsuite/integration/microprofile/src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/amqp/broker-ssl.xml @@ -37,7 +37,7 @@ tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=CORE,AMQP;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true - tcp://0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true;sslEnabled=true;keyStorePath=/Users/kabir/sourcecontrol/wildfly/wildfly/testsuite/integration/microprofile/src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/kafka/server.keystore.p12;keyStorePassword=serverks + tcp://0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true;sslEnabled=true;keyStorePath=$KEYSTORE$;keyStorePassword=serverks diff --git a/testsuite/integration/microprofile/src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/kafka/client.truststore.p12 b/testsuite/integration/microprofile/src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/ssl/client.truststore.p12 similarity index 100% rename from testsuite/integration/microprofile/src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/kafka/client.truststore.p12 rename to testsuite/integration/microprofile/src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/ssl/client.truststore.p12 diff --git a/testsuite/integration/microprofile/src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/kafka/server.keystore.p12 b/testsuite/integration/microprofile/src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/ssl/server.keystore.p12 similarity index 100% rename from testsuite/integration/microprofile/src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/kafka/server.keystore.p12 rename to testsuite/integration/microprofile/src/test/resources/org/wildfly/test/integration/microprofile/reactive/messaging/ssl/server.keystore.p12