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

acosentino pushed a commit to branch backport-raw-fixes
in repository https://gitbox.apache.org/repos/asf/camel-kafka-connector.git

commit 1d4fdbee5b1c96fe9e824d36e12960523be30fff
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Mon Aug 10 14:20:17 2020 +0200

    Building endpoint uris should for secret options automatic use RAW() syntax 
for the value so we wont have encoding issue for passwords or access tokens etc.
---
 .../org/apache/camel/kafkaconnector/utils/TaskHelper.java |  2 +-
 .../apache/camel/kafkaconnector/CamelSinkTaskTest.java    | 15 +++++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git 
a/core/src/main/java/org/apache/camel/kafkaconnector/utils/TaskHelper.java 
b/core/src/main/java/org/apache/camel/kafkaconnector/utils/TaskHelper.java
index 321fd8d..6fbeb20 100644
--- a/core/src/main/java/org/apache/camel/kafkaconnector/utils/TaskHelper.java
+++ b/core/src/main/java/org/apache/camel/kafkaconnector/utils/TaskHelper.java
@@ -58,7 +58,7 @@ public final class TaskHelper {
             for (String k : filteredProps.keySet()) {
                 if (isSecretOption(rcc, cm, k)) {
                     String value = filteredProps.get(k);
-                    if (value != null && !value.startsWith("RAW(")) {
+                    if (value != null && !value.startsWith("#") && 
!value.startsWith("RAW(")) {
                         value = "RAW(" + value + ")";
                         filteredProps.put(k, value);
                     }
diff --git 
a/core/src/test/java/org/apache/camel/kafkaconnector/CamelSinkTaskTest.java 
b/core/src/test/java/org/apache/camel/kafkaconnector/CamelSinkTaskTest.java
index b9af651..f4bb812 100644
--- a/core/src/test/java/org/apache/camel/kafkaconnector/CamelSinkTaskTest.java
+++ b/core/src/test/java/org/apache/camel/kafkaconnector/CamelSinkTaskTest.java
@@ -646,4 +646,19 @@ public class CamelSinkTaskTest {
         sinkTask.stop();
     }
 
+    @Test
+    public void testSecretRawReference() {
+        Map<String, String> props = new HashMap<>();
+        props.put(CamelSinkConnectorConfig.TOPIC_CONF, TOPIC_NAME);
+        props.put("camel.sink.endpoint.secretKey", "#bean:mySecretKey");
+        props.put("camel.sink.endpoint.accessKey", "#property:myAccessKey");
+        props.put(CamelSinkConnectorConfig.CAMEL_SINK_COMPONENT_CONF, 
"aws2-sqs");
+        props.put("myAccessKey", "MoreSe+ret$");
+
+        CamelSinkTask sinkTask = new CamelSinkTask();
+        sinkTask.start(props);
+
+        sinkTask.stop();
+    }
+
 }

Reply via email to