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 2022/03/02 07:14:40 UTC
[camel] 01/03: CAMEL-17730 - Camel-AWS Secret Manager Properties Source: if the subkey contains a default value the actual won't substitute correctly the secret
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
commit 65feb73d830d6d4a3138b88184f215c0c843541d
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Mar 2 08:12:02 2022 +0100
CAMEL-17730 - Camel-AWS Secret Manager Properties Source: if the subkey contains a default value the actual won't substitute correctly the secret
---
.../SecretsManagerPropertiesFunction.java | 3 ++
.../SecretsManagerPropertiesSourceTestIT.java | 42 ++++++++++++++++++++++
2 files changed, 45 insertions(+)
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerPropertiesFunction.java b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerPropertiesFunction.java
index 124a554..a04ca59 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerPropertiesFunction.java
+++ b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerPropertiesFunction.java
@@ -141,6 +141,9 @@ public class SecretsManagerPropertiesFunction extends ServiceSupport implements
key = StringHelper.before(remainder, "/");
subkey = StringHelper.after(remainder, "/");
defaultValue = StringHelper.after(subkey, ":");
+ if (subkey.contains(":")) {
+ subkey = StringHelper.before(subkey, ":");
+ }
} else if (remainder.contains(":")) {
key = StringHelper.before(remainder, ":");
defaultValue = StringHelper.after(remainder, ":");
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerPropertiesSourceTestIT.java b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerPropertiesSourceTestIT.java
index b5a0870..6ffd9b9 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerPropertiesSourceTestIT.java
+++ b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/integration/SecretsManagerPropertiesSourceTestIT.java
@@ -297,4 +297,46 @@ public class SecretsManagerPropertiesSourceTestIT extends CamelTestSupport {
template.sendBody("direct:username", "Hello World");
assertMockEndpointsSatisfied();
}
+
+ @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_ACCESS_KEY", matches = ".*")
+ @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_SECRET_KEY", matches = ".*")
+ @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_REGION", matches = ".*")
+ @Test
+ public void testPropertiesWithDefaultFunction() throws Exception {
+ context.addRoutes(new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ from("direct:username").setBody(simple("{{aws:postgresql/username:oscerd}}")).to("mock:bar");
+ from("direct:password").setBody(simple("{{aws:postgresql/password:password}}")).to("mock:bar");
+ }
+ });
+ context.start();
+
+ getMockEndpoint("mock:bar").expectedBodiesReceived("postgres", "secret");
+
+ template.sendBody("direct:username", "Hello World");
+ template.sendBody("direct:password", "Hello World");
+ assertMockEndpointsSatisfied();
+ }
+
+ @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_ACCESS_KEY", matches = ".*")
+ @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_SECRET_KEY", matches = ".*")
+ @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_REGION", matches = ".*")
+ @Test
+ public void testPropertiesWithDefaultNotExistentFunction() throws Exception {
+ context.addRoutes(new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ from("direct:username").setBody(simple("{{aws:db_sample/username:oscerd}}")).to("mock:bar");
+ from("direct:password").setBody(simple("{{aws:db_sample/password:password}}")).to("mock:bar");
+ }
+ });
+ context.start();
+
+ getMockEndpoint("mock:bar").expectedBodiesReceived("oscerd", "password");
+
+ template.sendBody("direct:username", "Hello World");
+ template.sendBody("direct:password", "Hello World");
+ assertMockEndpointsSatisfied();
+ }
}