This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 286a303b461 CAMEL-21207 - Camel-Opensearch: Provide a parameter to set
HostNameVerifier on client (#15537)
286a303b461 is described below
commit 286a303b4619e5408292c584a65f25e071ae43e9
Author: Andrea Cosentino <[email protected]>
AuthorDate: Thu Sep 12 15:25:05 2024 +0200
CAMEL-21207 - Camel-Opensearch: Provide a parameter to set HostNameVerifier
on client (#15537)
Signed-off-by: Andrea Cosentino <[email protected]>
---
.../camel/catalog/components/opensearch.json | 9 ++++---
.../opensearch/OpensearchEndpointConfigurer.java | 6 +++++
.../opensearch/OpensearchEndpointUriFactory.java | 3 ++-
.../camel/component/opensearch/opensearch.json | 9 ++++---
.../opensearch/OpensearchConfiguration.java | 15 +++++++++++
.../component/opensearch/OpensearchProducer.java | 3 +++
.../dsl/OpensearchEndpointBuilderFactory.java | 31 ++++++++++++++++++++++
7 files changed, 67 insertions(+), 9 deletions(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/opensearch.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/opensearch.json
index 57dceb58c9f..d629c50f885 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/opensearch.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/opensearch.json
@@ -66,9 +66,10 @@
"lazyStartProducer": { "index": 13, "kind": "parameter", "displayName":
"Lazy Start Producer", "group": "producer (advanced)", "label":
"producer,advanced", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "description": "Whether the producer should be started
lazy (on the first message). By starting lazy you can use this to allow
CamelContext and routes to startup in situations where a produ [...]
"documentClass": { "index": 14, "kind": "parameter", "displayName":
"Document Class", "group": "advanced", "label": "advanced", "required": false,
"type": "string", "javaType": "java.lang.Class<java.lang.Object>",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
"ObjectNode", "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The class to use when
deserializing the docu [...]
"enableSniffer": { "index": 15, "kind": "parameter", "displayName":
"Enable Sniffer", "group": "advanced", "label": "advanced", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "Enable automatically
discover nodes from a running OpenSearch cluster. If th [...]
- "sniffAfterFailureDelay": { "index": 16, "kind": "parameter",
"displayName": "Sniff After Failure Delay", "group": "advanced", "label":
"advanced", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
60000, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The delay of a sniff
execution scheduled after a failure (in [...]
- "snifferInterval": { "index": 17, "kind": "parameter", "displayName":
"Sniffer Interval", "group": "advanced", "label": "advanced", "required":
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 300000, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The interval between
consecutive ordinary sniff executions in milliseconds. [...]
- "certificatePath": { "index": 18, "kind": "parameter", "displayName":
"Certificate Path", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"supportFileReference": true, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The certificate that can
be used t [...]
- "enableSSL": { "index": 19, "kind": "parameter", "displayName": "Enable
SSL", "group": "security", "label": "security", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "Enable SSL" }
+ "hostnameVerifier": { "index": 16, "kind": "parameter", "displayName":
"Hostname Verifier", "group": "advanced", "label": "advanced", "required":
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier",
"deprecated": false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The class to use as
HostnameVerifier. By default there is no HostnameVe [...]
+ "sniffAfterFailureDelay": { "index": 17, "kind": "parameter",
"displayName": "Sniff After Failure Delay", "group": "advanced", "label":
"advanced", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
60000, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The delay of a sniff
execution scheduled after a failure (in [...]
+ "snifferInterval": { "index": 18, "kind": "parameter", "displayName":
"Sniffer Interval", "group": "advanced", "label": "advanced", "required":
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 300000, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The interval between
consecutive ordinary sniff executions in milliseconds. [...]
+ "certificatePath": { "index": 19, "kind": "parameter", "displayName":
"Certificate Path", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"supportFileReference": true, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The certificate that can
be used t [...]
+ "enableSSL": { "index": 20, "kind": "parameter", "displayName": "Enable
SSL", "group": "security", "label": "security", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "Enable SSL" }
}
}
diff --git
a/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointConfigurer.java
b/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointConfigurer.java
index 4ac6c3d62b2..c867569c5a7 100644
---
a/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointConfigurer.java
+++
b/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointConfigurer.java
@@ -37,6 +37,8 @@ public class OpensearchEndpointConfigurer extends
PropertyConfigurerSupport impl
case "from": target.getConfiguration().setFrom(property(camelContext,
java.lang.Integer.class, value)); return true;
case "hostaddresses":
case "hostAddresses":
target.getConfiguration().setHostAddresses(property(camelContext,
java.lang.String.class, value)); return true;
+ case "hostnameverifier":
+ case "hostnameVerifier":
target.getConfiguration().setHostnameVerifier(property(camelContext,
javax.net.ssl.HostnameVerifier.class, value)); return true;
case "indexname":
case "indexName":
target.getConfiguration().setIndexName(property(camelContext,
java.lang.String.class, value)); return true;
case "lazystartproducer":
@@ -78,6 +80,8 @@ public class OpensearchEndpointConfigurer extends
PropertyConfigurerSupport impl
case "from": return java.lang.Integer.class;
case "hostaddresses":
case "hostAddresses": return java.lang.String.class;
+ case "hostnameverifier":
+ case "hostnameVerifier": return javax.net.ssl.HostnameVerifier.class;
case "indexname":
case "indexName": return java.lang.String.class;
case "lazystartproducer":
@@ -120,6 +124,8 @@ public class OpensearchEndpointConfigurer extends
PropertyConfigurerSupport impl
case "from": return target.getConfiguration().getFrom();
case "hostaddresses":
case "hostAddresses": return
target.getConfiguration().getHostAddresses();
+ case "hostnameverifier":
+ case "hostnameVerifier": return
target.getConfiguration().getHostnameVerifier();
case "indexname":
case "indexName": return target.getConfiguration().getIndexName();
case "lazystartproducer":
diff --git
a/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointUriFactory.java
b/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointUriFactory.java
index 938efe87de6..69bd323361d 100644
---
a/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointUriFactory.java
+++
b/components/camel-opensearch/src/generated/java/org/apache/camel/component/opensearch/OpensearchEndpointUriFactory.java
@@ -23,7 +23,7 @@ public class OpensearchEndpointUriFactory extends
org.apache.camel.support.compo
private static final Set<String> SECRET_PROPERTY_NAMES;
private static final Set<String> MULTI_VALUE_PREFIXES;
static {
- Set<String> props = new HashSet<>(20);
+ Set<String> props = new HashSet<>(21);
props.add("certificatePath");
props.add("clusterName");
props.add("connectionTimeout");
@@ -33,6 +33,7 @@ public class OpensearchEndpointUriFactory extends
org.apache.camel.support.compo
props.add("enableSniffer");
props.add("from");
props.add("hostAddresses");
+ props.add("hostnameVerifier");
props.add("indexName");
props.add("lazyStartProducer");
props.add("maxRetryTimeout");
diff --git
a/components/camel-opensearch/src/generated/resources/META-INF/org/apache/camel/component/opensearch/opensearch.json
b/components/camel-opensearch/src/generated/resources/META-INF/org/apache/camel/component/opensearch/opensearch.json
index 57dceb58c9f..d629c50f885 100644
---
a/components/camel-opensearch/src/generated/resources/META-INF/org/apache/camel/component/opensearch/opensearch.json
+++
b/components/camel-opensearch/src/generated/resources/META-INF/org/apache/camel/component/opensearch/opensearch.json
@@ -66,9 +66,10 @@
"lazyStartProducer": { "index": 13, "kind": "parameter", "displayName":
"Lazy Start Producer", "group": "producer (advanced)", "label":
"producer,advanced", "required": false, "type": "boolean", "javaType":
"boolean", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": false, "description": "Whether the producer should be started
lazy (on the first message). By starting lazy you can use this to allow
CamelContext and routes to startup in situations where a produ [...]
"documentClass": { "index": 14, "kind": "parameter", "displayName":
"Document Class", "group": "advanced", "label": "advanced", "required": false,
"type": "string", "javaType": "java.lang.Class<java.lang.Object>",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
"ObjectNode", "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The class to use when
deserializing the docu [...]
"enableSniffer": { "index": 15, "kind": "parameter", "displayName":
"Enable Sniffer", "group": "advanced", "label": "advanced", "required": false,
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "Enable automatically
discover nodes from a running OpenSearch cluster. If th [...]
- "sniffAfterFailureDelay": { "index": 16, "kind": "parameter",
"displayName": "Sniff After Failure Delay", "group": "advanced", "label":
"advanced", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
60000, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The delay of a sniff
execution scheduled after a failure (in [...]
- "snifferInterval": { "index": 17, "kind": "parameter", "displayName":
"Sniffer Interval", "group": "advanced", "label": "advanced", "required":
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 300000, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The interval between
consecutive ordinary sniff executions in milliseconds. [...]
- "certificatePath": { "index": 18, "kind": "parameter", "displayName":
"Certificate Path", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"supportFileReference": true, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The certificate that can
be used t [...]
- "enableSSL": { "index": 19, "kind": "parameter", "displayName": "Enable
SSL", "group": "security", "label": "security", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "Enable SSL" }
+ "hostnameVerifier": { "index": 16, "kind": "parameter", "displayName":
"Hostname Verifier", "group": "advanced", "label": "advanced", "required":
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier",
"deprecated": false, "autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The class to use as
HostnameVerifier. By default there is no HostnameVe [...]
+ "sniffAfterFailureDelay": { "index": 17, "kind": "parameter",
"displayName": "Sniff After Failure Delay", "group": "advanced", "label":
"advanced", "required": false, "type": "integer", "javaType": "int",
"deprecated": false, "autowired": false, "secret": false, "defaultValue":
60000, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The delay of a sniff
execution scheduled after a failure (in [...]
+ "snifferInterval": { "index": 18, "kind": "parameter", "displayName":
"Sniffer Interval", "group": "advanced", "label": "advanced", "required":
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired":
false, "secret": false, "defaultValue": 300000, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The interval between
consecutive ordinary sniff executions in milliseconds. [...]
+ "certificatePath": { "index": 19, "kind": "parameter", "displayName":
"Certificate Path", "group": "security", "label": "security", "required":
false, "type": "string", "javaType": "java.lang.String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false,
"supportFileReference": true, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "The certificate that can
be used t [...]
+ "enableSSL": { "index": 20, "kind": "parameter", "displayName": "Enable
SSL", "group": "security", "label": "security", "required": false, "type":
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": false, "configurationClass":
"org.apache.camel.component.opensearch.OpensearchConfiguration",
"configurationField": "configuration", "description": "Enable SSL" }
}
}
diff --git
a/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchConfiguration.java
b/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchConfiguration.java
index c507f7a519b..87dbafc6b7f 100644
---
a/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchConfiguration.java
+++
b/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchConfiguration.java
@@ -18,6 +18,8 @@ package org.apache.camel.component.opensearch;
import java.util.List;
+import javax.net.ssl.HostnameVerifier;
+
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.UriParam;
@@ -72,6 +74,8 @@ public class OpensearchConfiguration {
private int sniffAfterFailureDelay =
OpensearchConstants.DEFAULT_AFTER_FAILURE_DELAY;
@UriParam(label = "advanced", defaultValue = "ObjectNode")
private Class<?> documentClass = ObjectNode.class;
+ @UriParam(label = "advanced")
+ private HostnameVerifier hostnameVerifier;
/**
* Starting index of the response.
@@ -314,4 +318,15 @@ public class OpensearchConfiguration {
public void setDocumentClass(Class<?> documentClass) {
this.documentClass = documentClass;
}
+
+ public HostnameVerifier getHostnameVerifier() {
+ return hostnameVerifier;
+ }
+
+ /**
+ * The class to use as HostnameVerifier. By default there is no
HostnameVerifier.
+ */
+ public void setHostnameVerifier(HostnameVerifier hostnameVerifier) {
+ this.hostnameVerifier = hostnameVerifier;
+ }
}
diff --git
a/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchProducer.java
b/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchProducer.java
index 5ee5ebed4c6..0d95488a833 100644
---
a/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchProducer.java
+++
b/components/camel-opensearch/src/main/java/org/apache/camel/component/opensearch/OpensearchProducer.java
@@ -479,6 +479,9 @@ class OpensearchProducer extends DefaultAsyncProducer {
if (configuration.getCertificatePath() != null) {
httpClientBuilder.setSSLContext(createSslContextFromCa());
}
+ if (configuration.getHostnameVerifier() != null) {
+
httpClientBuilder.setSSLHostnameVerifier(configuration.getHostnameVerifier());
+ }
return httpClientBuilder;
});
}
diff --git
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpensearchEndpointBuilderFactory.java
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpensearchEndpointBuilderFactory.java
index 4ab5c15ef01..5ab606a8b10 100644
---
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpensearchEndpointBuilderFactory.java
+++
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/OpensearchEndpointBuilderFactory.java
@@ -548,6 +548,37 @@ public interface OpensearchEndpointBuilderFactory {
doSetProperty("enableSniffer", enableSniffer);
return this;
}
+ /**
+ * The class to use as HostnameVerifier. By default there is no
+ * HostnameVerifier.
+ *
+ * The option is a: <code>javax.net.ssl.HostnameVerifier</code> type.
+ *
+ * Group: advanced
+ *
+ * @param hostnameVerifier the value to set
+ * @return the dsl builder
+ */
+ default AdvancedOpensearchEndpointBuilder
hostnameVerifier(javax.net.ssl.HostnameVerifier hostnameVerifier) {
+ doSetProperty("hostnameVerifier", hostnameVerifier);
+ return this;
+ }
+ /**
+ * The class to use as HostnameVerifier. By default there is no
+ * HostnameVerifier.
+ *
+ * The option will be converted to a
+ * <code>javax.net.ssl.HostnameVerifier</code> type.
+ *
+ * Group: advanced
+ *
+ * @param hostnameVerifier the value to set
+ * @return the dsl builder
+ */
+ default AdvancedOpensearchEndpointBuilder hostnameVerifier(String
hostnameVerifier) {
+ doSetProperty("hostnameVerifier", hostnameVerifier);
+ return this;
+ }
/**
* The delay of a sniff execution scheduled after a failure (in
* milliseconds).