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

davsclaus 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 0cdb0a53f02 CAMEL-20954: Cannot share SSLContextParameters between 
camel-kafka and other components (#14758)
0cdb0a53f02 is described below

commit 0cdb0a53f02a3ce0e7a39378794c15f94f6ce1cd
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Tue Jul 9 06:36:16 2024 +0200

    CAMEL-20954: Cannot share SSLContextParameters between camel-kafka and 
other components (#14758)
---
 .../apache/camel/component/kafka/KafkaConfiguration.java | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git 
a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java
 
b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java
index 25b4ececf6b..49689999ea6 100755
--- 
a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java
+++ 
b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java
@@ -38,6 +38,7 @@ import org.apache.camel.spi.StateRepository;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
+import org.apache.camel.support.ResourceHelper;
 import org.apache.camel.support.jsse.CipherSuitesParameters;
 import org.apache.camel.support.jsse.KeyManagersParameters;
 import org.apache.camel.support.jsse.KeyStoreParameters;
@@ -45,6 +46,7 @@ import org.apache.camel.support.jsse.SSLContextParameters;
 import org.apache.camel.support.jsse.SecureSocketProtocolsParameters;
 import org.apache.camel.support.jsse.TrustManagersParameters;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.apache.kafka.clients.CommonClientConfigs;
 import org.apache.kafka.clients.consumer.ConsumerConfig;
 import org.apache.kafka.clients.producer.ProducerConfig;
@@ -570,8 +572,13 @@ public class KafkaConfiguration implements Cloneable, 
HeaderFilterStrategyAware
             addPropertyIfNotNull(props, SslConfigs.SSL_KEY_PASSWORD_CONFIG, 
keyManagers.getKeyPassword());
             KeyStoreParameters keyStore = keyManagers.getKeyStore();
             if (keyStore != null) {
+                // kakfa loads the resource itself and you cannot have prefix
+                String location = keyStore.getResource();
+                if (ResourceHelper.hasScheme(location)) {
+                    location = StringHelper.after(location, ":");
+                }
                 addUpperCasePropertyIfNotEmpty(props, 
SslConfigs.SSL_KEYSTORE_TYPE_CONFIG, keyStore.getType());
-                addPropertyIfNotNull(props, 
SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, keyStore.getResource());
+                addPropertyIfNotNull(props, 
SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, location);
                 addPropertyIfNotNull(props, 
SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, keyStore.getPassword());
             }
         }
@@ -581,8 +588,13 @@ public class KafkaConfiguration implements Cloneable, 
HeaderFilterStrategyAware
             addPropertyIfNotNull(props, 
SslConfigs.SSL_TRUSTMANAGER_ALGORITHM_CONFIG, trustManagers.getAlgorithm());
             KeyStoreParameters keyStore = trustManagers.getKeyStore();
             if (keyStore != null) {
+                // kakfa loads the resource itself and you cannot have prefix
+                String location = keyStore.getResource();
+                if (ResourceHelper.hasScheme(location)) {
+                    location = StringHelper.after(location, ":");
+                }
                 addPropertyIfNotNull(props, 
SslConfigs.SSL_TRUSTSTORE_TYPE_CONFIG, keyStore.getType());
-                addPropertyIfNotNull(props, 
SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, keyStore.getResource());
+                addPropertyIfNotNull(props, 
SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, location);
                 addPropertyIfNotEmpty(props, 
SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, keyStore.getPassword());
             }
         }

Reply via email to