This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch 3.2.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit 1b74642f090cc7810c99f1cabb91cbf3c1349656
Author: James Netherton <[email protected]>
AuthorDate: Tue Nov 14 15:24:29 2023 +0000

    Clean up usage of hard coded hosts that use containers
---
 .../component/http/common/HttpTestResource.java    |  1 +
 .../quarkus/component/http/http/HttpResource.java  |  9 ++++---
 .../ProxyCapableClientInitializerFactory.java      |  7 ++++--
 .../component/http/vertx/VertxResource.java        |  9 ++++---
 .../camel/quarkus/component/mail/CamelRoute.java   | 27 +++++++++++----------
 .../camel/quarkus/component/mail/MailTest.java     |  7 +++---
 .../quarkus/component/mail/MailTestResource.java   |  2 ++
 .../component/paho/mqtt5/it/PahoMqtt5Resource.java | 28 ++++++++++++++++++++--
 .../paho/mqtt5/it/PahoMqtt5TestResource.java       | 12 ++++++----
 .../camel/quarkus/component/paho/PahoResource.java | 23 +++++++++++++++++-
 .../component/paho/it/PahoTestResource.java        | 12 ++++++----
 .../component/splunk/it/SplunkResource.java        | 26 +++++++++++---------
 .../quarkus/component/splunk/it/SplunkTest.java    |  6 +++--
 .../component/splunk/it/SplunkTestResource.java    |  5 +++-
 14 files changed, 125 insertions(+), 49 deletions(-)

diff --git 
a/integration-test-groups/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/HttpTestResource.java
 
b/integration-test-groups/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/HttpTestResource.java
index e7ac637bc5..2d00cfe7eb 100644
--- 
a/integration-test-groups/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/HttpTestResource.java
+++ 
b/integration-test-groups/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/HttpTestResource.java
@@ -51,6 +51,7 @@ public class HttpTestResource implements 
QuarkusTestResourceLifecycleManager {
                 "camel.netty-http.test-port",
                 "camel.netty-http.https-test-port",
                 "camel.netty-http.compression-test-port");
+        options.put("tiny.proxy.host", container.getHost());
         options.put("tiny.proxy.port", 
container.getMappedPort(TINY_PROXY_PORT).toString());
         return options;
     }
diff --git 
a/integration-test-groups/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpResource.java
 
b/integration-test-groups/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpResource.java
index a72de9d50b..7897e15013 100644
--- 
a/integration-test-groups/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpResource.java
+++ 
b/integration-test-groups/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpResource.java
@@ -33,6 +33,7 @@ import org.apache.camel.builder.EndpointConsumerBuilder;
 import org.apache.camel.builder.EndpointProducerBuilder;
 import org.apache.camel.builder.endpoint.EndpointRouteBuilder;
 import org.apache.camel.quarkus.component.http.common.AbstractHttpResource;
+import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
 
 @Path("/test/client/http")
@@ -104,15 +105,17 @@ public class HttpResource extends AbstractHttpResource {
     @GET
     @Produces(MediaType.APPLICATION_XML)
     public String httpProxy() {
-        Integer proxyPort = 
ConfigProvider.getConfig().getValue("tiny.proxy.port", Integer.class);
+        Config config = ConfigProvider.getConfig();
+        String proxyHost = config.getValue("tiny.proxy.host", String.class);
+        Integer proxyPort = config.getValue("tiny.proxy.port", Integer.class);
         return producerTemplate
                 .toF("%s?"
                         + "proxyAuthMethod=Basic"
                         + "&proxyAuthScheme=http"
-                        + "&proxyAuthHost=localhost"
+                        + "&proxyAuthHost=%s"
                         + "&proxyAuthPort=%d"
                         + "&proxyAuthUsername=%s"
-                        + "&proxyAuthPassword=%s", String.format(PROXIED_URL, 
"http"), proxyPort, USER_ADMIN,
+                        + "&proxyAuthPassword=%s", String.format(PROXIED_URL, 
"http"), proxyHost, proxyPort, USER_ADMIN,
                         USER_ADMIN_PASSWORD)
                 .request(String.class);
     }
diff --git 
a/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/ProxyCapableClientInitializerFactory.java
 
b/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/ProxyCapableClientInitializerFactory.java
index dd24d2568d..89db81aa0b 100644
--- 
a/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/ProxyCapableClientInitializerFactory.java
+++ 
b/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/ProxyCapableClientInitializerFactory.java
@@ -24,6 +24,7 @@ import 
org.apache.camel.component.netty.ClientInitializerFactory;
 import org.apache.camel.component.netty.NettyProducer;
 import org.apache.camel.component.netty.http.HttpClientInitializerFactory;
 import org.apache.camel.component.netty.http.NettyHttpProducer;
+import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
 
 import static 
org.apache.camel.quarkus.component.http.common.AbstractHttpResource.USER_ADMIN;
@@ -40,8 +41,10 @@ public class ProxyCapableClientInitializerFactory extends 
HttpClientInitializerF
 
     @Override
     protected void initChannel(Channel channel) throws Exception {
-        Integer proxyPort = 
ConfigProvider.getConfig().getValue("tiny.proxy.port", Integer.class);
-        InetSocketAddress proxyServerAddress = new 
InetSocketAddress("localhost", proxyPort);
+        Config config = ConfigProvider.getConfig();
+        String proxyHost = config.getValue("tiny.proxy.host", String.class);
+        Integer proxyPort = config.getValue("tiny.proxy.port", Integer.class);
+        InetSocketAddress proxyServerAddress = new 
InetSocketAddress(proxyHost, proxyPort);
         HttpProxyHandler httpProxyHandler = new 
HttpProxyHandler(proxyServerAddress, USER_ADMIN, USER_ADMIN_PASSWORD);
         httpProxyHandler.setConnectTimeoutMillis(5000);
         super.initChannel(channel);
diff --git 
a/integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxResource.java
 
b/integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxResource.java
index 984af4ae72..b21e392339 100644
--- 
a/integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxResource.java
+++ 
b/integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxResource.java
@@ -35,6 +35,7 @@ import org.apache.camel.PropertyBindingException;
 import org.apache.camel.ResolveEndpointFailedException;
 import org.apache.camel.http.base.HttpOperationFailedException;
 import org.apache.camel.quarkus.component.http.common.AbstractHttpResource;
+import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
 
 import static 
org.apache.camel.component.vertx.http.VertxHttpConstants.CONTENT_TYPE_FORM_URLENCODED;
@@ -91,14 +92,16 @@ public class VertxResource extends AbstractHttpResource {
     @GET
     @Produces(MediaType.APPLICATION_XML)
     public String httpProxy() {
-        Integer proxyPort = 
ConfigProvider.getConfig().getValue("tiny.proxy.port", Integer.class);
+        Config config = ConfigProvider.getConfig();
+        String proxyHost = config.getValue("tiny.proxy.host", String.class);
+        Integer proxyPort = config.getValue("tiny.proxy.port", Integer.class);
         return producerTemplate
                 .toF("vertx-http:%s?"
-                        + "proxyHost=localhost"
+                        + "proxyHost=%s"
                         + "&proxyPort=%d"
                         + "&proxyType=HTTP"
                         + "&proxyUsername=%s"
-                        + "&proxyPassword=%s", String.format(PROXIED_URL, 
"vertx-http"), proxyPort, USER_ADMIN,
+                        + "&proxyPassword=%s", String.format(PROXIED_URL, 
"vertx-http"), proxyHost, proxyPort, USER_ADMIN,
                         USER_ADMIN_PASSWORD)
                 .request(String.class);
     }
diff --git 
a/integration-tests/mail/src/main/java/org/apache/camel/quarkus/component/mail/CamelRoute.java
 
b/integration-tests/mail/src/main/java/org/apache/camel/quarkus/component/mail/CamelRoute.java
index f6c0fac239..8506f56830 100644
--- 
a/integration-tests/mail/src/main/java/org/apache/camel/quarkus/component/mail/CamelRoute.java
+++ 
b/integration-tests/mail/src/main/java/org/apache/camel/quarkus/component/mail/CamelRoute.java
@@ -66,6 +66,9 @@ public class CamelRoute extends RouteBuilder {
     static final String USERNAME = "test";
     static final String PASSWORD = "s3cr3t";
 
+    @ConfigProperty(name = "mail.host")
+    String mailHost;
+
     @ConfigProperty(name = "mail.smtp.port")
     int smtpPort;
 
@@ -91,11 +94,11 @@ public class CamelRoute extends RouteBuilder {
                 .handled(false);
 
         from("direct:sendMail")
-                .toF("smtp://localhost:%d?username=%s&password=%s", smtpPort, 
USERNAME, PASSWORD);
+                .toF("smtp://%s:%d?username=%s&password=%s", mailHost, 
smtpPort, USERNAME, PASSWORD);
 
         from("direct:sendMailSecured").toF(
-                
"smtps://localhost:%d?username=%s&password=%s&sslContextParameters=#sslContextParameters&additionalJavaMailProperties=#additionalProperties",
-                smtpsPort, USERNAME, PASSWORD);
+                
"smtps://%s:%d?username=%s&password=%s&sslContextParameters=#sslContextParameters&additionalJavaMailProperties=#additionalProperties",
+                mailHost, smtpsPort, USERNAME, PASSWORD);
 
         from("direct:mimeMultipartMarshal")
                 .marshal().mimeMultipart();
@@ -104,34 +107,34 @@ public class CamelRoute extends RouteBuilder {
                 .unmarshal().mimeMultipart()
                 .marshal().mimeMultipart();
 
-        
fromF("pop3://localhost:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true",
 pop3Port, USERNAME,
+        
fromF("pop3://%s:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true",
 mailHost, pop3Port, USERNAME,
                 PASSWORD)
                 .id(Routes.pop3ReceiveRoute.name())
                 .autoStartup(false)
                 .process(exchange -> handleMail(exchange));
 
-        
fromF("pop3s://localhost:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true&sslContextParameters=#sslContextParameters&additionalJavaMailProperties=#additionalProperties",
-                pop3sPort, USERNAME,
+        
fromF("pop3s://%s:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true&sslContextParameters=#sslContextParameters&additionalJavaMailProperties=#additionalProperties",
+                mailHost, pop3sPort, USERNAME,
                 PASSWORD)
                 .id(Routes.pop3sReceiveRoute.name())
                 .autoStartup(false)
                 .process(exchange -> handleMail(exchange));
 
-        
fromF("imap://localhost:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true",
 imapPort, USERNAME,
+        
fromF("imap://%s:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true",
 mailHost, imapPort, USERNAME,
                 PASSWORD)
                 .id(Routes.imapReceiveRoute.name())
                 .autoStartup(false)
                 .process(exchange -> handleMail(exchange));
 
-        
fromF("imaps://localhost:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true&sslContextParameters=#sslContextParameters&additionalJavaMailProperties=#additionalProperties",
-                imapsPort, USERNAME,
+        
fromF("imaps://%s:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true&sslContextParameters=#sslContextParameters&additionalJavaMailProperties=#additionalProperties",
+                mailHost, imapsPort, USERNAME,
                 PASSWORD)
                 .id(Routes.imapsReceiveRoute.name())
                 .autoStartup(false)
                 .process(exchange -> handleMail(exchange));
 
-        
fromF("pop3://localhost:%d?initialDelay=100&delay=500&username=%s&password=%s"
-                + "&delete=true&maxMessagesPerPoll=3", pop3Port, USERNAME, 
PASSWORD)
+        fromF("pop3://%s:%d?initialDelay=100&delay=500&username=%s&password=%s"
+                + "&delete=true&maxMessagesPerPoll=3", mailHost, pop3Port, 
USERNAME, PASSWORD)
                 .id(Routes.batchReceiveRoute.name())
                 .autoStartup(false)
                 .process(e -> {
@@ -142,7 +145,7 @@ public class CamelRoute extends RouteBuilder {
                     map.put(ExchangePropertyKey.BATCH_SIZE.getName(), 
e.getProperty(ExchangePropertyKey.BATCH_SIZE));
                 });
 
-        
fromF("pop3://localhost:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true",
 pop3Port, USERNAME,
+        
fromF("pop3://%s:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true",
 mailHost, pop3Port, USERNAME,
                 PASSWORD)
                 .id(Routes.convertersRoute.name())
                 .autoStartup(false)
diff --git 
a/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTest.java
 
b/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTest.java
index 30de0a2d9c..4ca05a9f7b 100644
--- 
a/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTest.java
+++ 
b/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTest.java
@@ -81,7 +81,8 @@ public class MailTest {
         RestAssured.given()
                 .contentType(ContentType.JSON)
                 .body(userJson)
-                .post("http://localhost:"; + config.getValue("mail.api.port", 
Integer.class) + "/api/user")
+                .post("http://"; + config.getValue("mail.host", String.class) + 
":"
+                        + config.getValue("mail.api.port", Integer.class) + 
"/api/user")
                 .then()
                 .statusCode(200);
     }
@@ -91,8 +92,8 @@ public class MailTest {
         // Clear mailboxes
         Config config = ConfigProvider.getConfig();
         RestAssured.given()
-                .port(config.getValue("mail.api.port", Integer.class))
-                .post("/api/service/reset")
+                .post("http://"; + config.getValue("mail.host", String.class) + 
":"
+                        + config.getValue("mail.api.port", Integer.class) + 
"/api/service/reset")
                 .then()
                 .statusCode(200)
                 .body("message", is("Performed reset"));
diff --git 
a/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTestResource.java
 
b/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTestResource.java
index e051140a61..eae68a091f 100644
--- 
a/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTestResource.java
+++ 
b/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTestResource.java
@@ -47,6 +47,8 @@ public class MailTestResource implements 
QuarkusTestResourceLifecycleManager {
         container.start();
 
         Map<String, String> options = new HashMap<>();
+        options.put("mail.host", container.getHost());
+
         for (MailProtocol protocol : MailProtocol.values()) {
             String optionName = String.format("mail.%s.port", 
protocol.name().toLowerCase());
             Integer mappedPort = container.getMappedPort(protocol.getPort());
diff --git 
a/integration-tests/paho-mqtt5/src/main/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5Resource.java
 
b/integration-tests/paho-mqtt5/src/main/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5Resource.java
index 150332eb33..339a4cc3c5 100644
--- 
a/integration-tests/paho-mqtt5/src/main/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5Resource.java
+++ 
b/integration-tests/paho-mqtt5/src/main/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5Resource.java
@@ -24,8 +24,13 @@ import java.nio.file.Paths;
 import java.nio.file.StandardCopyOption;
 import java.util.concurrent.TimeUnit;
 
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.SSLSession;
+
 import jakarta.enterprise.context.ApplicationScoped;
 import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import jakarta.inject.Singleton;
 import jakarta.ws.rs.Consumes;
 import jakarta.ws.rs.DefaultValue;
 import jakarta.ws.rs.GET;
@@ -42,6 +47,7 @@ import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.component.paho.mqtt5.PahoMqtt5Constants;
 import org.apache.camel.spi.RouteController;
+import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
 
 @Path("/paho-mqtt5")
@@ -76,7 +82,9 @@ public class PahoMqtt5Resource {
         try {
             if ("ssl".equals(protocol)) {
                 tmpKeystore = setKeyStore(keystore);
-                sslClientProps = "&sslClientProps.com.ibm.ssl.keyStore=" + 
tmpKeystore +
+                sslClientProps = "&httpsHostnameVerificationEnabled=false" +
+                        "&sslHostnameVerifier=#hostnameVerifier" +
+                        "&sslClientProps.com.ibm.ssl.keyStore=" + tmpKeystore +
                         "&sslClientProps.com.ibm.ssl.keyStorePassword=" + 
password +
                         "&sslClientProps.com.ibm.ssl.trustStore=" + 
tmpKeystore +
                         "&sslClientProps.com.ibm.ssl.trustStorePassword=" + 
password;
@@ -105,7 +113,9 @@ public class PahoMqtt5Resource {
         try {
             if ("ssl".equals(protocol)) {
                 tmpKeystore = setKeyStore(keystore);
-                sslClientProps = "&sslClientProps.com.ibm.ssl.keyStore=" + 
tmpKeystore +
+                sslClientProps = "&httpsHostnameVerificationEnabled=false" +
+                        "&sslHostnameVerifier=#hostnameVerifier" +
+                        "&sslClientProps.com.ibm.ssl.keyStore=" + tmpKeystore +
                         "&sslClientProps.com.ibm.ssl.keyStorePassword=" + 
password +
                         "&sslClientProps.com.ibm.ssl.trustStore=" + 
tmpKeystore +
                         "&sslClientProps.com.ibm.ssl.trustStorePassword=" + 
password;
@@ -176,6 +186,20 @@ public class PahoMqtt5Resource {
         return Response.created(new URI("https://camel.apache.org/";)).build();
     }
 
+    @Singleton
+    @Named
+    HostnameVerifier hostnameVerifier() {
+        // Allow certificate host name validation to work with whatever 
container host name is used
+        return new HostnameVerifier() {
+            final Config config = ConfigProvider.getConfig();
+
+            @Override
+            public boolean verify(String hostname, SSLSession session) {
+                return config.getValue("paho5.broker.host", 
String.class).equals(hostname);
+            }
+        };
+    }
+
     private String brokerUrl(String protocol) {
         return ConfigProvider.getConfig().getValue("paho5.broker." + protocol 
+ ".url", String.class);
     }
diff --git 
a/integration-tests/paho-mqtt5/src/test/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5TestResource.java
 
b/integration-tests/paho-mqtt5/src/test/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5TestResource.java
index 0f9e08cc79..2a22a98ee5 100644
--- 
a/integration-tests/paho-mqtt5/src/test/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5TestResource.java
+++ 
b/integration-tests/paho-mqtt5/src/test/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5TestResource.java
@@ -78,7 +78,7 @@ public class PahoMqtt5TestResource implements 
QuarkusTestResourceLifecycleManage
                         .withFixedExposedPort(port, TCP_PORT);
 
                 result = CollectionHelper.mapOf(
-                        "paho5.broker.tcp.url", "tcp://localhost:" + port);
+                        "paho5.broker.tcp.url", "tcp://" + container.getHost() 
+ ":" + port);
             } else {
                 container = new GenericContainer<>(IMAGE)
                         .withExposedPorts(TCP_PORT, WS_PORT, SSL_PORT)
@@ -103,9 +103,13 @@ public class PahoMqtt5TestResource implements 
QuarkusTestResourceLifecycleManage
                 result = CollectionHelper.mapOf(
                         "camel.component.paho-mqtt5.username", MQTT_USERNAME,
                         "camel.component.paho-mqtt5.password", MQTT_PASSWORD,
-                        "paho5.broker.tcp.url", 
String.format("tcp://localhost:%d", container.getMappedPort(TCP_PORT)),
-                        "paho5.broker.ssl.url", 
String.format("ssl://localhost:%d", container.getMappedPort(SSL_PORT)),
-                        "paho5.broker.ws.url", 
String.format("ws://localhost:%d", container.getMappedPort(WS_PORT)));
+                        "paho5.broker.host", container.getHost(),
+                        "paho5.broker.tcp.url",
+                        String.format("tcp://%s:%d", container.getHost(), 
container.getMappedPort(TCP_PORT)),
+                        "paho5.broker.ssl.url",
+                        String.format("ssl://%s:%d", container.getHost(), 
container.getMappedPort(SSL_PORT)),
+                        "paho5.broker.ws.url",
+                        String.format("ws://%s:%d", container.getHost(), 
container.getMappedPort(WS_PORT)));
             }
 
             return result;
diff --git 
a/integration-tests/paho/src/main/java/org/apache/camel/quarkus/component/paho/PahoResource.java
 
b/integration-tests/paho/src/main/java/org/apache/camel/quarkus/component/paho/PahoResource.java
index 4e3c27cf0c..8269c71fa1 100644
--- 
a/integration-tests/paho/src/main/java/org/apache/camel/quarkus/component/paho/PahoResource.java
+++ 
b/integration-tests/paho/src/main/java/org/apache/camel/quarkus/component/paho/PahoResource.java
@@ -21,8 +21,13 @@ import java.net.URI;
 import java.nio.file.Files;
 import java.nio.file.StandardCopyOption;
 
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.SSLSession;
+
 import jakarta.enterprise.context.ApplicationScoped;
 import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import jakarta.inject.Singleton;
 import jakarta.ws.rs.Consumes;
 import jakarta.ws.rs.GET;
 import jakarta.ws.rs.POST;
@@ -35,6 +40,7 @@ import jakarta.ws.rs.core.Response;
 import org.apache.camel.ConsumerTemplate;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.paho.PahoConstants;
+import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
 import org.eclipse.paho.client.mqttv3.MqttException;
 import org.jboss.logging.Logger;
@@ -143,10 +149,25 @@ public class PahoResource {
         return ConfigProvider.getConfig().getValue("paho.broker." + protocol + 
".url", String.class);
     }
 
+    @Singleton
+    @Named
+    HostnameVerifier hostnameVerifier() {
+        // Allow certificate host name validation to work with whatever 
container host name is used
+        return new HostnameVerifier() {
+            final Config config = ConfigProvider.getConfig();
+
+            @Override
+            public boolean verify(String hostname, SSLSession session) {
+                return config.getValue("paho.broker.host", 
String.class).equals(hostname);
+            }
+        };
+    }
+
     private String sslOptions(java.nio.file.Path keyStore) {
         return keyStore == null
                 ? ""
-                : "&sslClientProps.com.ibm.ssl.keyStore=" + keyStore +
+                : 
"&httpsHostnameVerificationEnabled=false&sslHostnameVerifier=#hostnameVerifier" 
+
+                        "&sslClientProps.com.ibm.ssl.keyStore=" + keyStore +
                         "&sslClientProps.com.ibm.ssl.keyStorePassword=" + 
KEYSTORE_PASSWORD +
                         "&sslClientProps.com.ibm.ssl.trustStore=" + keyStore +
                         "&sslClientProps.com.ibm.ssl.trustStorePassword=" + 
KEYSTORE_PASSWORD;
diff --git 
a/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoTestResource.java
 
b/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoTestResource.java
index fa9e01a021..1070489fc3 100644
--- 
a/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoTestResource.java
+++ 
b/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoTestResource.java
@@ -60,11 +60,13 @@ public class PahoTestResource implements 
QuarkusTestResourceLifecycleManager {
 
             container.start();
 
-            result = CollectionHelper.mapOf("camel.component.paho.username", 
MQTT_USERNAME,
-                    "camel.component.paho.password", MQTT_PASSWORD, 
"paho.broker.tcp.url",
-                    String.format("tcp://localhost:%d", 
container.getMappedPort(TCP_PORT)), "paho.broker.ssl.url",
-                    String.format("ssl://localhost:%d", 
container.getMappedPort(SSL_PORT)), "paho.broker.ws.url",
-                    String.format("ws://localhost:%d", 
container.getMappedPort(WS_PORT)));
+            result = CollectionHelper.mapOf(
+                    "camel.component.paho.username", MQTT_USERNAME,
+                    "camel.component.paho.password", MQTT_PASSWORD,
+                    "paho.broker.host", container.getHost(),
+                    "paho.broker.tcp.url", String.format("tcp://%s:%d", 
container.getHost(), container.getMappedPort(TCP_PORT)),
+                    "paho.broker.ssl.url", String.format("ssl://%s:%d", 
container.getHost(), container.getMappedPort(SSL_PORT)),
+                    "paho.broker.ws.url", String.format("ws://%s:%d", 
container.getHost(), container.getMappedPort(WS_PORT)));
 
             return result;
         } catch (Exception e) {
diff --git 
a/integration-tests/splunk/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java
 
b/integration-tests/splunk/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java
index afe65d099f..f00eea9e16 100644
--- 
a/integration-tests/splunk/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java
+++ 
b/integration-tests/splunk/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java
@@ -47,6 +47,7 @@ import org.eclipse.microprofile.config.inject.ConfigProperty;
 public class SplunkResource {
 
     public static final String SAVED_SEARCH_NAME = "savedSearchForTest";
+    public static final String PARAM_REMOTE_HOST = 
"org.apache.camel.quarkus.component.splunk.it.SplunkResource_host";
     public static final String PARAM_REMOTE_PORT = 
"org.apache.camel.quarkus.component.splunk.it.SplunkResource_remotePort";
     public static final String PARAM_TCP_PORT = 
"org.apache.camel.quarkus.component.splunk.it.SplunkResource_tcpPort";
     public static final String SOURCE = "test";
@@ -58,6 +59,9 @@ public class SplunkResource {
     @Inject
     ConsumerTemplate consumerTemplate;
 
+    @ConfigProperty(name = PARAM_REMOTE_HOST)
+    String host;
+
     @ConfigProperty(name = PARAM_REMOTE_PORT)
     Integer port;
 
@@ -79,21 +83,21 @@ public class SplunkResource {
 
         if ("savedSearch".equals(mapName)) {
             url = String.format(
-                    
"splunk://savedsearch?username=admin&password=changeit&scheme=http&port=%d&delay=500&initEarliestTime=-10m&savedsearch=%s",
-                    port, SAVED_SEARCH_NAME);
+                    
"splunk://savedsearch?username=admin&password=changeit&scheme=http&host=%s&port=%d&delay=500&initEarliestTime=-10m&savedsearch=%s",
+                    host, port, SAVED_SEARCH_NAME);
         } else if ("normalSearch".equals(mapName)) {
             url = String.format(
-                    
"splunk://normal?username=admin&password=changeit&scheme=http&port=%d&delay=5000&initEarliestTime=-10s&search="
+                    
"splunk://normal?username=admin&password=changeit&scheme=http&host=%s&port=%d&delay=5000&initEarliestTime=-10s&search="
                             + "search sourcetype=\"SUBMIT\" | rex field=_raw 
\"Name: (?<name>.*) From: (?<from>.*)\"",
-                    port);
+                    host, port);
         } else {
             url = String.format(
-                    
"splunk://realtime?username=admin&password=changeit&scheme=http&port=%d&delay=3000&initEarliestTime=rt-10s&latestTime=RAW(rt+40s)&search="
+                    
"splunk://realtime?username=admin&password=changeit&scheme=http&host=%s&port=%d&delay=3000&initEarliestTime=rt-10s&latestTime=RAW(rt+40s)&search="
                             + "search sourcetype=\"STREAM\" | rex field=_raw 
\"Name: (?<name>.*) From: (?<from>.*)\"",
-                    port, ProducerType.STREAM.name());
+                    host, port, ProducerType.STREAM.name());
         }
 
-        List<SplunkEvent> events = events = new LinkedList<>();
+        List<SplunkEvent> events = new LinkedList<>();
         for (int i = 0; i < count; i++) {
             SplunkEvent se = consumerTemplate.receiveBody(url, 5000, 
SplunkEvent.class);
             if (se == null) {
@@ -137,14 +141,14 @@ public class SplunkResource {
         String url;
         if (ProducerType.TCP == ProducerType.valueOf(producerType)) {
             url = String.format(
-                    
"splunk:%s?raw=%b&username=admin&password=changeit&scheme=http&port=%d&index=%s&sourceType=%s&source=%s&tcpReceiverLocalPort=%d&tcpReceiverPort=%d",
-                    producerType.toLowerCase(), !(message instanceof 
SplunkEvent), port, index, producerType, SOURCE,
+                    
"splunk:%s?raw=%b&username=admin&password=changeit&scheme=http&host=%s&port=%d&index=%s&sourceType=%s&source=%s&tcpReceiverLocalPort=%d&tcpReceiverPort=%d",
+                    producerType.toLowerCase(), !(message instanceof 
SplunkEvent), host, port, index, producerType, SOURCE,
                     LOCAL_TCP_PORT, tcpPort);
 
         } else {
             url = String.format(
-                    
"splunk:%s?raw=%b&scheme=http&port=%d&index=%s&sourceType=%s&source=%s",
-                    producerType.toLowerCase(), !(message instanceof 
SplunkEvent), port, index, producerType, SOURCE);
+                    
"splunk:%s?raw=%b&scheme=http&host=%s&port=%d&index=%s&sourceType=%s&source=%s",
+                    producerType.toLowerCase(), !(message instanceof 
SplunkEvent), host, port, index, producerType, SOURCE);
         }
         final String response = producerTemplate.requestBody(url, message, 
String.class);
         return Response
diff --git 
a/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java
 
b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java
index 37d2f7705d..33f992361f 100644
--- 
a/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java
+++ 
b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java
@@ -30,6 +30,7 @@ import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import io.restassured.http.ContentType;
 import org.apache.camel.component.splunk.ProducerType;
+import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
 import org.hamcrest.Matchers;
 import org.junit.jupiter.api.Test;
@@ -69,9 +70,10 @@ class SplunkTest {
     public void testSavedSearchWithTcp() throws InterruptedException {
         String suffix = "_SavedSearchOfTcp";
         //create saved search
+        Config config = ConfigProvider.getConfig();
         RestAssured.given()
-                .baseUri("http://localhost";)
-                
.port(ConfigProvider.getConfig().getValue(SplunkResource.PARAM_REMOTE_PORT, 
Integer.class))
+                .baseUri("http://"; + 
config.getValue(SplunkResource.PARAM_REMOTE_HOST, String.class))
+                .port(config.getValue(SplunkResource.PARAM_REMOTE_PORT, 
Integer.class))
                 .contentType(ContentType.JSON)
                 .param("name", SplunkResource.SAVED_SEARCH_NAME)
                 .param("disabled", "0")
diff --git 
a/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTestResource.java
 
b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTestResource.java
index dee01b4a2e..5b740ec2cd 100644
--- 
a/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTestResource.java
+++ 
b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTestResource.java
@@ -69,12 +69,15 @@ public class SplunkTestResource implements 
QuarkusTestResourceLifecycleManager {
                     "-sourcetype",
                     ProducerType.TCP.name());
 
+            String splunkHost = container.getHost();
+
             String banner = StringUtils.repeat("*", 50);
             LOG.info(banner);
-            LOG.infof("Splunk UI running on: http://localhost:%d";, 
container.getMappedPort(WEB_PORT));
+            LOG.infof("Splunk UI running on: http://%s:%d";, splunkHost, 
container.getMappedPort(WEB_PORT));
             LOG.info(banner);
 
             return Map.of(
+                    SplunkResource.PARAM_REMOTE_HOST, splunkHost,
                     SplunkResource.PARAM_REMOTE_PORT, 
container.getMappedPort(REMOTE_PORT).toString(),
                     SplunkResource.PARAM_TCP_PORT, 
container.getMappedPort(SplunkResource.LOCAL_TCP_PORT).toString());
         } catch (Exception e) {

Reply via email to