You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2023/01/10 14:35:24 UTC

[camel] 01/03: CAMEL-18773 - Camel-Elasticsearch: CertificatePath should be readable through ResourceHelper

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

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

commit 780bd73a19f9f5bab7be454041cf4dceed2e4844
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Jan 10 15:03:45 2023 +0100

    CAMEL-18773 - Camel-Elasticsearch: CertificatePath should be readable through ResourceHelper
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../java/org/apache/camel/component/es/ElasticsearchProducer.java  | 7 +++++--
 .../camel/component/es/integration/ElasticsearchTestSupport.java   | 2 +-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/components/camel-elasticsearch/src/main/java/org/apache/camel/component/es/ElasticsearchProducer.java b/components/camel-elasticsearch/src/main/java/org/apache/camel/component/es/ElasticsearchProducer.java
index 5cafd7933c5..d373a2b0b9e 100644
--- a/components/camel-elasticsearch/src/main/java/org/apache/camel/component/es/ElasticsearchProducer.java
+++ b/components/camel-elasticsearch/src/main/java/org/apache/camel/component/es/ElasticsearchProducer.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.es;
 
 import java.io.ByteArrayInputStream;
+import java.io.InputStream;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.security.KeyStore;
@@ -58,6 +59,7 @@ import org.apache.camel.CamelExchangeException;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.support.DefaultAsyncProducer;
+import org.apache.camel.support.ResourceHelper;
 import org.apache.camel.util.IOHelper;
 import org.apache.http.HttpHost;
 import org.apache.http.auth.AuthScope;
@@ -540,8 +542,9 @@ class ElasticsearchProducer extends DefaultAsyncProducer {
     private SSLContext createSslContextFromCa() {
         try {
             CertificateFactory factory = CertificateFactory.getInstance("X.509");
-            Certificate trustedCa = factory.generateCertificate(
-                    new ByteArrayInputStream(Files.readAllBytes(Paths.get(configuration.getCertificatePath()))));
+            InputStream resolveMandatoryResourceAsInputStream
+                    = ResourceHelper.resolveMandatoryResourceAsInputStream(getEndpoint().getCamelContext(), configuration.getCertificatePath());
+            Certificate trustedCa = factory.generateCertificate(resolveMandatoryResourceAsInputStream);
             KeyStore trustStore = KeyStore.getInstance("pkcs12");
             trustStore.load(null, null);
             trustStore.setCertificateEntry("ca", trustedCa);
diff --git a/components/camel-elasticsearch/src/test/java/org/apache/camel/component/es/integration/ElasticsearchTestSupport.java b/components/camel-elasticsearch/src/test/java/org/apache/camel/component/es/integration/ElasticsearchTestSupport.java
index 5257a55dbc8..efe8664c075 100644
--- a/components/camel-elasticsearch/src/test/java/org/apache/camel/component/es/integration/ElasticsearchTestSupport.java
+++ b/components/camel-elasticsearch/src/test/java/org/apache/camel/component/es/integration/ElasticsearchTestSupport.java
@@ -126,7 +126,7 @@ public class ElasticsearchTestSupport extends CamelTestSupport {
         elasticsearchComponent.setHostAddresses(service.getHttpHostAddress());
         elasticsearchComponent.setUser(USER_NAME);
         elasticsearchComponent.setPassword(PASSWORD);
-        elasticsearchComponent.setCertificatePath(certPath.toString());
+        elasticsearchComponent.setCertificatePath("file:" + certPath.toString());
 
         CamelContext context = super.createCamelContext();
         context.addComponent("elasticsearch", elasticsearchComponent);