This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch CAMEL-21179-hashicorp in repository https://gitbox.apache.org/repos/asf/camel.git
commit dfb8faab175c753ffe067f2978947bae4fa06467 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Mon Sep 9 14:33:06 2024 +0200 CAMEL-21179 - Secret Properties Functions: Supporting secret name containing "/" - Hashicorp Vault Signed-off-by: Andrea Cosentino <anco...@gmail.com> --- .../vault/HashicorpVaultPropertiesFunction.java | 6 +- .../HashicorpVaultPropertiesSourceNoEnvTestIT.java | 33 +- .../HashicorpVaultPropertiesSourceTestIT.java | 484 --------------------- 3 files changed, 30 insertions(+), 493 deletions(-) diff --git a/components/camel-hashicorp-vault/src/main/java/org/apache/camel/component/hashicorp/vault/HashicorpVaultPropertiesFunction.java b/components/camel-hashicorp-vault/src/main/java/org/apache/camel/component/hashicorp/vault/HashicorpVaultPropertiesFunction.java index 598c14ae226..b54be20e34e 100644 --- a/components/camel-hashicorp-vault/src/main/java/org/apache/camel/component/hashicorp/vault/HashicorpVaultPropertiesFunction.java +++ b/components/camel-hashicorp-vault/src/main/java/org/apache/camel/component/hashicorp/vault/HashicorpVaultPropertiesFunction.java @@ -126,11 +126,11 @@ public class HashicorpVaultPropertiesFunction extends ServiceSupport implements String returnValue = null; String defaultValue = null; String version = null; - if (remainder.contains("/")) { - String keyRemainder = StringHelper.before(remainder, "/"); + if (remainder.contains("#")) { + String keyRemainder = StringHelper.before(remainder, "#"); engine = StringHelper.before(keyRemainder, ":"); key = StringHelper.after(keyRemainder, ":"); - subkey = StringHelper.after(remainder, "/"); + subkey = StringHelper.after(remainder, "#"); defaultValue = StringHelper.after(subkey, ":"); if (ObjectHelper.isNotEmpty(defaultValue)) { if (defaultValue.contains("@")) { diff --git a/components/camel-hashicorp-vault/src/test/java/org/apache/camel/component/hashicorp/vault/integration/HashicorpVaultPropertiesSourceNoEnvTestIT.java b/components/camel-hashicorp-vault/src/test/java/org/apache/camel/component/hashicorp/vault/integration/HashicorpVaultPropertiesSourceNoEnvTestIT.java index 5dbcd03426f..75262b38e0a 100644 --- a/components/camel-hashicorp-vault/src/test/java/org/apache/camel/component/hashicorp/vault/integration/HashicorpVaultPropertiesSourceNoEnvTestIT.java +++ b/components/camel-hashicorp-vault/src/test/java/org/apache/camel/component/hashicorp/vault/integration/HashicorpVaultPropertiesSourceNoEnvTestIT.java @@ -66,7 +66,7 @@ public class HashicorpVaultPropertiesSourceNoEnvTestIT extends CamelTestSupport context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:start").setBody(simple("{{hashicorp:secret:hello/id}}")).to("mock:bar"); + from("direct:start").setBody(simple("{{hashicorp:secret:hello#id}}")).to("mock:bar"); } }); context.start(); @@ -87,8 +87,8 @@ public class HashicorpVaultPropertiesSourceNoEnvTestIT extends CamelTestSupport context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:username").setBody(simple("{{hashicorp:secret:hello/username}}")).to("mock:bar"); - from("direct:password").setBody(simple("{{hashicorp:secret:hello/password}}")).to("mock:bar"); + from("direct:username").setBody(simple("{{hashicorp:secret:hello#username}}")).to("mock:bar"); + from("direct:password").setBody(simple("{{hashicorp:secret:hello#password}}")).to("mock:bar"); } }); context.start(); @@ -374,7 +374,7 @@ public class HashicorpVaultPropertiesSourceNoEnvTestIT extends CamelTestSupport context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:version").setBody(simple("{{hashicorp:secret:hello/id@1}}")).to("mock:bar"); + from("direct:version").setBody(simple("{{hashicorp:secret:hello#id@1}}")).to("mock:bar"); } }); context.start(); @@ -477,7 +477,7 @@ public class HashicorpVaultPropertiesSourceNoEnvTestIT extends CamelTestSupport context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:version").setBody(simple("{{hashicorp:secret:hello/id:pippo@1}}")) + from("direct:version").setBody(simple("{{hashicorp:secret:hello#id:pippo@1}}")) .to("mock:bar"); } }); @@ -489,6 +489,27 @@ public class HashicorpVaultPropertiesSourceNoEnvTestIT extends CamelTestSupport MockEndpoint.assertIsSatisfied(context); } + @Test + public void testPropertiesWithVersionFieldAndDefaultValueFunctionWithNotExistentVersion() throws Exception { + context.getVaultConfiguration().hashicorp().setToken(System.getProperty("camel.vault.hashicorp.token")); + context.getVaultConfiguration().hashicorp().setHost(System.getProperty("camel.vault.hashicorp.host")); + context.getVaultConfiguration().hashicorp().setPort(System.getProperty("camel.vault.hashicorp.port")); + context.getVaultConfiguration().hashicorp().setScheme(System.getProperty("camel.vault.hashicorp.scheme")); + context.addRoutes(new RouteBuilder() { + @Override + public void configure() { + from("direct:version").setBody(simple("{{hashicorp:secret:hello#id:pippo@2}}")) + .to("mock:bar"); + } + }); + context.start(); + + getMockEndpoint("mock:bar").expectedBodiesReceived("pippo"); + + template.sendBody("direct:version", "Hello World"); + MockEndpoint.assertIsSatisfied(context); + } + @Test public void testPropertiesWithDoubleEngines() throws Exception { context.getVaultConfiguration().hashicorp().setToken(System.getProperty("camel.vault.hashicorp.token")); @@ -507,7 +528,7 @@ public class HashicorpVaultPropertiesSourceNoEnvTestIT extends CamelTestSupport }); context.start(); - getMockEndpoint("mock:bar").expectedBodiesReceived("{id=21}", "{id=22}"); + getMockEndpoint("mock:bar").expectedBodiesReceived("{id=21}", "{id=21}"); template.sendBody("direct:engine1", "Hello World"); template.sendBody("direct:engine2", "Hello World"); diff --git a/components/camel-hashicorp-vault/src/test/java/org/apache/camel/component/hashicorp/vault/integration/HashicorpVaultPropertiesSourceTestIT.java b/components/camel-hashicorp-vault/src/test/java/org/apache/camel/component/hashicorp/vault/integration/HashicorpVaultPropertiesSourceTestIT.java deleted file mode 100644 index a85c929cd9d..00000000000 --- a/components/camel-hashicorp-vault/src/test/java/org/apache/camel/component/hashicorp/vault/integration/HashicorpVaultPropertiesSourceTestIT.java +++ /dev/null @@ -1,484 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.component.hashicorp.vault.integration; - -import org.apache.camel.FailedToCreateRouteException; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.mock.MockEndpoint; -import org.apache.camel.test.junit5.CamelTestSupport; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; - -import static org.junit.jupiter.api.Assertions.assertThrows; - -public class HashicorpVaultPropertiesSourceTestIT extends CamelTestSupport { - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testFunctio() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:start").setBody(simple("{{hashicorp:secret:hello}}")).to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("{id=21, password=password, username=admin}"); - - template.sendBody("direct:start", "Hello World"); - - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testFunctionWithField() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:start").setBody(simple("{{hashicorp:secret:hello/id}}")).to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("21"); - - template.sendBody("direct:start", "Hello World"); - - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testComplexCustomPropertiesFunction() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:username").setBody(simple("{{hashicorp:secret:hello/username}}")).to("mock:bar"); - from("direct:password").setBody(simple("{{hashicorp:secret:hello/password}}")).to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("admin", "password"); - - template.sendBody("direct:username", "Hello World"); - template.sendBody("direct:password", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testComplexNoSubkeyPropertiesFunction() { - Exception exception = assertThrows(FailedToCreateRouteException.class, () -> { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:username").setBody(simple("{{hashicorp:database_sample/not_existent}}")).to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("admin"); - - template.sendBody("direct:username", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - }); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testComplexCustomPropertiesDefaultValueFunction() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:username").setBody(simple("{{hashicorp:secret:hello/additional1:admin}}")).to("mock:bar"); - from("direct:password").setBody(simple("{{hashicorp:secret:hello/additional2:secret}}")).to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("admin", "secret"); - - template.sendBody("direct:username", "Hello World"); - template.sendBody("direct:password", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testComplexCustomPropertiesDefaultValueExceptionFunction() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:username").setBody(simple("{{hashicorp:secret:test-3/additional1:admin}}")).to("mock:bar"); - from("direct:password").setBody(simple("{{hashicorp:secret:test-3/additional2:secret}}")).to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("admin", "secret"); - - template.sendBody("direct:username", "Hello World"); - template.sendBody("direct:password", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testComplexCustomPropertiesExceptionFunction() { - Exception exception = assertThrows(FailedToCreateRouteException.class, () -> { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:username").setBody(simple("{{hashicorp:secret:test-3/additional1}}")).to("mock:bar"); - from("direct:password").setBody(simple("{{hashicorp:secret:test-3/additional2}}")).to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("admin", "secret"); - - template.sendBody("direct:username", "Hello World"); - template.sendBody("direct:password", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - }); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testComplexSimpleDefaultValueExceptionFunction() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:username").setBody(simple("{{hashicorp:secret:hello-2:admin}}")).to("mock:bar"); - from("direct:password").setBody(simple("{{hashicorp:secret:hello-1:pwd}}")).to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("admin", "pwd"); - - template.sendBody("direct:username", "Hello World"); - template.sendBody("direct:password", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testComplexSimpleNoDefaultValueExceptionFunction() { - Exception exception = assertThrows(FailedToCreateRouteException.class, () -> { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:username").setBody(simple("{{hashicorp:secret:secretsuper}}")).to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("admin"); - - template.sendBody("direct:username", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - }); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testComplexCustomPropertiesNoDefaultValueFunction() { - Exception exception = assertThrows(FailedToCreateRouteException.class, () -> { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:username").setBody(simple("{{hashicorp:secret:postgresql/additional1}}")).to("mock:bar"); - from("direct:password").setBody(simple("{{hashicorp:secret:postgresql/additional2}}")).to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("admin", "secret"); - - template.sendBody("direct:username", "Hello World"); - template.sendBody("direct:password", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - }); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testComplexCustomPropertiesNotExistentDefaultValueFunction() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:username").setBody(simple("{{hashicorp:secret:newsecret/additional1:admin}}")).to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("admin"); - - template.sendBody("direct:username", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testComplexCustomPropertiesDefaultCredsDefaultValueFunction() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:username").setBody(simple("{{hashicorp:secret:newsecret/additional1:admin}}")).to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("admin"); - - template.sendBody("direct:username", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testPropertiesWithDefaultFunction() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:username").setBody(simple("{{hashicorp:secret:postgresql/username:oscerd}}")).to("mock:bar"); - from("direct:password").setBody(simple("{{hashicorp:secret:postgresql/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"); - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testPropertiesWithDefaultNotExistentFunction() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:username").setBody(simple("{{hashicorp:secret:db_sample/username:oscerd}}")).to("mock:bar"); - from("direct:password").setBody(simple("{{hashicorp:secret: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"); - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testPropertiesWithVersionFunction() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:version").setBody(simple("{{hashicorp:secret:hello/id@1}}")).to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("21"); - - template.sendBody("direct:version", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testPropertiesWithVersionAndNoFieldFunction() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:version").setBody(simple("{{hashicorp:secret:hello@1}}")).to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("{id=21, password=password, username=admin}"); - - template.sendBody("direct:version", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testPropertiesWithVersionNoFieldAndDefaultValueFunction() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:version").setBody(simple("{{hashicorp:secret:hello:pippo@1}}")) - .to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("{id=21, password=password, username=admin}"); - - template.sendBody("direct:version", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testPropertiesWithVersionNoFieldDefaultValueNotExistentSecretFunction() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:version").setBody(simple("{{hashicorp:secret:hello-3:pippo@4}}")) - .to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("pippo"); - - template.sendBody("direct:version", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testPropertiesWithVersionNoFieldDefaultValueNotExistentVersionFunction() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:version").setBody(simple("{{hashicorp:secret:hello:pippo@4}}")) - .to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("pippo"); - - template.sendBody("direct:version", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testPropertiesWithVersionFieldAndDefaultValueFunction() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:version").setBody(simple("{{hashicorp:secret:hello/id:pippo@1}}")) - .to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("21"); - - template.sendBody("direct:version", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - } - - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME", matches = ".*") - @Test - public void testPropertiesWithDoubleEngines() throws Exception { - context.addRoutes(new RouteBuilder() { - @Override - public void configure() { - from("direct:engine1").setBody(simple("{{hashicorp:secretengine1:hello}}")) - .to("mock:bar"); - - from("direct:engine2").setBody(simple("{{hashicorp:secretengine2:hello}}")) - .to("mock:bar"); - } - }); - context.start(); - - getMockEndpoint("mock:bar").expectedBodiesReceived("{id=21}", "{id=22}"); - - template.sendBody("direct:engine1", "Hello World"); - template.sendBody("direct:engine2", "Hello World"); - MockEndpoint.assertIsSatisfied(context); - } -}