You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by al...@apache.org on 2021/02/10 08:31:13 UTC
[camel-quarkus] branch camel-master updated: Made nats TLS auth
tests optional fixes #2211
This is an automated email from the ASF dual-hosted git repository.
aldettinger pushed a commit to branch camel-master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/camel-master by this push:
new 514f9a7 Made nats TLS auth tests optional fixes #2211
514f9a7 is described below
commit 514f9a796bc0064a34232e83960415e2719ce5b9
Author: aldettinger <al...@gmail.com>
AuthorDate: Tue Feb 9 18:13:44 2021 +0100
Made nats TLS auth tests optional fixes #2211
---
.../component/nats/it/NatsConfiguration.java | 22 +++++++++++-----------
.../quarkus/component/nats/it/NatsRoutes.java | 19 ++++++++++++++++++-
.../nats/src/main/resources/application.properties | 4 +++-
.../camel/quarkus/component/nats/it/NatsTest.java | 8 ++++++--
.../component/nats/it/NatsTestResource.java | 9 +++++++--
5 files changed, 45 insertions(+), 17 deletions(-)
diff --git a/integration-tests/nats/src/main/java/org/apache/camel/quarkus/component/nats/it/NatsConfiguration.java b/integration-tests/nats/src/main/java/org/apache/camel/quarkus/component/nats/it/NatsConfiguration.java
index fe48a7a..b50aa0d 100644
--- a/integration-tests/nats/src/main/java/org/apache/camel/quarkus/component/nats/it/NatsConfiguration.java
+++ b/integration-tests/nats/src/main/java/org/apache/camel/quarkus/component/nats/it/NatsConfiguration.java
@@ -18,7 +18,9 @@ package org.apache.camel.quarkus.component.nats.it;
import javax.inject.Named;
+import io.quarkus.arc.properties.IfBuildProperty;
import org.apache.camel.component.nats.NatsComponent;
+import org.eclipse.microprofile.config.ConfigProvider;
import org.eclipse.microprofile.config.inject.ConfigProperty;
public class NatsConfiguration {
@@ -27,6 +29,7 @@ public class NatsConfiguration {
public static final String NATS_BROKER_URL_NO_AUTH_CONFIG_KEY = "camel.nats.test.broker-url-no-auth";
public static final String NATS_BROKER_URL_TLS_AUTH_CONFIG_KEY = "camel.nats.test.broker-url-tls-auth";
public static final String NATS_BROKER_URL_TOKEN_AUTH_CONFIG_KEY = "camel.nats.test.broker-url-token-auth";
+ public static final String NATS_ENABLE_TLS_TESTS_CONFIG_KEY = "camel.nats.test.enable-tls";
@ConfigProperty(name = NATS_BROKER_URL_BASIC_AUTH_CONFIG_KEY)
String natsBasicAuthBrokerUrl;
@@ -34,10 +37,6 @@ public class NatsConfiguration {
@ConfigProperty(name = NATS_BROKER_URL_NO_AUTH_CONFIG_KEY)
String natsNoAuthBrokerUrl;
- // TODO: https://github.com/apache/camel-quarkus/issues/2211
- // @ConfigProperty(name = NATS_BROKER_URL_TLS_AUTH_CONFIG_KEY)
- // String natsTlsAuthBrokerUrl;
-
@ConfigProperty(name = NATS_BROKER_URL_TOKEN_AUTH_CONFIG_KEY)
String natsTokenAuthBrokerUrl;
@@ -55,13 +54,14 @@ public class NatsConfiguration {
return component;
}
- // TODO: https://github.com/apache/camel-quarkus/issues/2211
- // @Named
- // NatsComponent natsTlsAuth() {
- // NatsComponent component = new NatsComponent();
- // component.setServers(natsTlsAuthBrokerUrl);
- // return component;
- // }
+ @Named
+ @IfBuildProperty(name = NATS_ENABLE_TLS_TESTS_CONFIG_KEY, stringValue = "true")
+ NatsComponent natsTlsAuth() {
+ NatsComponent component = new NatsComponent();
+ String natsTlsAuthBrokerUrl = ConfigProvider.getConfig().getValue(NATS_BROKER_URL_TLS_AUTH_CONFIG_KEY, String.class);
+ component.setServers(natsTlsAuthBrokerUrl);
+ return component;
+ }
@Named
NatsComponent natsTokenAuth() {
diff --git a/integration-tests/nats/src/main/java/org/apache/camel/quarkus/component/nats/it/NatsRoutes.java b/integration-tests/nats/src/main/java/org/apache/camel/quarkus/component/nats/it/NatsRoutes.java
index 4cf0284..32ffe69 100644
--- a/integration-tests/nats/src/main/java/org/apache/camel/quarkus/component/nats/it/NatsRoutes.java
+++ b/integration-tests/nats/src/main/java/org/apache/camel/quarkus/component/nats/it/NatsRoutes.java
@@ -25,19 +25,36 @@ import org.apache.camel.support.jsse.KeyManagersParameters;
import org.apache.camel.support.jsse.KeyStoreParameters;
import org.apache.camel.support.jsse.SSLContextParameters;
import org.apache.camel.support.jsse.TrustManagersParameters;
+import org.eclipse.microprofile.config.inject.ConfigProperty;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.apache.camel.quarkus.component.nats.it.NatsConfiguration.NATS_ENABLE_TLS_TESTS_CONFIG_KEY;
@ApplicationScoped
public class NatsRoutes extends RouteBuilder {
+ private static final Logger LOG = LoggerFactory.getLogger(NatsRoutes.class);
+
@Inject
NatsResource natsResource;
+ @ConfigProperty(name = NATS_ENABLE_TLS_TESTS_CONFIG_KEY)
+ boolean tlsTestsEnabled;
+
@Override
public void configure() {
from("natsBasicAuth:test").routeId("basic-auth").bean(natsResource, "storeMessage");
from("natsNoAuth:test").routeId("no-auth").bean(natsResource, "storeMessage");
from("natsTokenAuth:test").routeId("token-auth").bean(natsResource, "storeMessage");
- //from("natsTlsAuth:test?sslContextParameters=#ssl&secure=true").routeId("tls-auth").bean(natsResource, "storeMessage");
+
+ if (tlsTestsEnabled) {
+ LOG.info("TLS tests enabled so starting the TLS auth route");
+ final String uri = "natsTlsAuth:test?sslContextParameters=#ssl&secure=true";
+ from(uri).routeId("tls-auth").bean(natsResource, "storeMessage");
+ } else {
+ LOG.info("TLS tests NOT enabled, so NOT starting the TLS auth route");
+ }
from("natsNoAuth:max?maxMessages=2").routeId("2-msg-max").bean(natsResource, "storeMessage");
diff --git a/integration-tests/nats/src/main/resources/application.properties b/integration-tests/nats/src/main/resources/application.properties
index 45284f0..b94b7c4 100644
--- a/integration-tests/nats/src/main/resources/application.properties
+++ b/integration-tests/nats/src/main/resources/application.properties
@@ -14,4 +14,6 @@
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------
-quarkus.camel.native.resources.include-patterns=certs/*.jks
\ No newline at end of file
+quarkus.camel.native.resources.include-patterns=certs/*.jks
+
+camel.nats.test.enable-tls=${ENABLE_TLS_TESTS:false}
\ No newline at end of file
diff --git a/integration-tests/nats/src/test/java/org/apache/camel/quarkus/component/nats/it/NatsTest.java b/integration-tests/nats/src/test/java/org/apache/camel/quarkus/component/nats/it/NatsTest.java
index 64bee53..802e270 100644
--- a/integration-tests/nats/src/test/java/org/apache/camel/quarkus/component/nats/it/NatsTest.java
+++ b/integration-tests/nats/src/test/java/org/apache/camel/quarkus/component/nats/it/NatsTest.java
@@ -21,8 +21,8 @@ import java.util.concurrent.TimeUnit;
import io.quarkus.test.common.QuarkusTestResource;
import io.quarkus.test.junit.QuarkusTest;
import io.restassured.http.Header;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
import static io.restassured.RestAssured.given;
import static org.awaitility.Awaitility.await;
@@ -60,8 +60,12 @@ class NatsTest {
assertEquals("no-auth-msg", messages[0]);
}
- @Disabled("https://github.com/apache/camel-quarkus/issues/2211")
+ /*
+ * The tests with TLS authentication fail in some environments (quarkus-platform, loaded systems and maybe more).
+ * They can be enabled locally with "export ENABLE_TLS_TESTS=true".
+ */
@Test
+ @EnabledIfEnvironmentVariable(named = "ENABLE_TLS_TESTS", matches = "true")
void tlsAuthProduceConsumeRoundTripShouldSucceed() {
Header header = new Header("sendToEndpointUri", "natsTlsAuth:test?sslContextParameters=#ssl&secure=true");
given().when().header(header).body("tls-auth-msg").post("/nats/send").then().statusCode(204);
diff --git a/integration-tests/nats/src/test/java/org/apache/camel/quarkus/component/nats/it/NatsTestResource.java b/integration-tests/nats/src/test/java/org/apache/camel/quarkus/component/nats/it/NatsTestResource.java
index 712f47a..6a6344a 100644
--- a/integration-tests/nats/src/test/java/org/apache/camel/quarkus/component/nats/it/NatsTestResource.java
+++ b/integration-tests/nats/src/test/java/org/apache/camel/quarkus/component/nats/it/NatsTestResource.java
@@ -53,9 +53,15 @@ public class NatsTestResource implements ContainerResourceLifecycleManager {
basicAuthContainer = basicAuthContainer(properties);
noAuthContainer = noAuthContainer(properties);
- //tlsAuthContainer = tlsAuthContainer(properties);
tokenAuthContainer = tokenAuthContainer(properties);
+ if ("true".equals(System.getenv("ENABLE_TLS_TESTS"))) {
+ LOG.info("TLS tests enabled so starting the TLS auth container");
+ tlsAuthContainer = tlsAuthContainer(properties);
+ } else {
+ LOG.info("TLS tests NOT enabled, so NOT starting the TLS auth container");
+ }
+
LOG.info("Properties: {}", properties);
return properties;
@@ -140,7 +146,6 @@ public class NatsTestResource implements ContainerResourceLifecycleManager {
"--tlsverify",
"--tlscacert=/certs/ca.pem")
.withLogConsumer(new Slf4jLogConsumer(LOG).withPrefix("tlsAuthContainer"))
- .waitingFor(Wait.forListeningPort())
.waitingFor(Wait.forLogMessage(".*Server is ready.*", 1));
try {
container.start();