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 5184bb647474d841656f547075914a767d546abe Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Thu Jul 14 11:03:24 2022 +0200 CAMEL-17688 - Support ability to load properties from Vault/Secrets cloud services - Hashicorp Vault --- .../HashicorpVaultPropertiesSourceTestIT.java | 147 ++++++++++++--------- 1 file changed, 87 insertions(+), 60 deletions(-) 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 index fd2a43122d4..5a04babc1e1 100644 --- 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 @@ -211,16 +211,18 @@ public class HashicorpVaultPropertiesSourceTestIT extends CamelTestSupport { }); } - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_ACCESS_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_SECRET_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_REGION", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_ENGINE_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME_ENV", matches = ".*") @Test public void testComplexSimpleDefaultValueExceptionFunction() throws Exception { context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:username").setBody(simple("{{aws:test-3:admin}}")).to("mock:bar"); - from("direct:password").setBody(simple("{{aws:test-1:secret}}")).to("mock:bar"); + from("direct:username").setBody(simple("{{hashicorp:hello-2:admin}}")).to("mock:bar"); + from("direct:password").setBody(simple("{{hashicorp:hello-1:secret}}")).to("mock:bar"); } }); context.start(); @@ -232,16 +234,18 @@ public class HashicorpVaultPropertiesSourceTestIT extends CamelTestSupport { assertMockEndpointsSatisfied(); } - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_ACCESS_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_SECRET_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_REGION", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_ENGINE_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME_ENV", matches = ".*") @Test public void testComplexSimpleNoDefaultValueExceptionFunction() { Exception exception = assertThrows(FailedToCreateRouteException.class, () -> { context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:username").setBody(simple("{{aws:secretsuper}}")).to("mock:bar"); + from("direct:username").setBody(simple("{{hashicorp:secretsuper}}")).to("mock:bar"); } }); context.start(); @@ -253,17 +257,19 @@ public class HashicorpVaultPropertiesSourceTestIT extends CamelTestSupport { }); } - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_ACCESS_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_SECRET_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_REGION", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_ENGINE_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME_ENV", matches = ".*") @Test public void testComplexCustomPropertiesNoDefaultValueFunction() { Exception exception = assertThrows(FailedToCreateRouteException.class, () -> { context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:username").setBody(simple("{{aws:postgresql/additional1}}")).to("mock:bar"); - from("direct:password").setBody(simple("{{aws:postgresql/additional2}}")).to("mock:bar"); + from("direct:username").setBody(simple("{{hashicorp:postgresql/additional1}}")).to("mock:bar"); + from("direct:password").setBody(simple("{{hashicorp:postgresql/additional2}}")).to("mock:bar"); } }); context.start(); @@ -276,15 +282,17 @@ public class HashicorpVaultPropertiesSourceTestIT extends CamelTestSupport { }); } - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_ACCESS_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_SECRET_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_REGION", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_ENGINE_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME_ENV", matches = ".*") @Test public void testComplexCustomPropertiesNotExistentDefaultValueFunction() throws Exception { context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:username").setBody(simple("{{aws:newsecret/additional1:admin}}")).to("mock:bar"); + from("direct:username").setBody(simple("{{hashicorp:newsecret/additional1:admin}}")).to("mock:bar"); } }); context.start(); @@ -295,14 +303,17 @@ public class HashicorpVaultPropertiesSourceTestIT extends CamelTestSupport { assertMockEndpointsSatisfied(); } - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_USE_DEFAULT_CREDENTIALS_PROVIDER", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_REGION", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_ENGINE_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME_ENV", matches = ".*") @Test public void testComplexCustomPropertiesDefaultCredsDefaultValueFunction() throws Exception { context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:username").setBody(simple("{{aws:newsecret/additional1:admin}}")).to("mock:bar"); + from("direct:username").setBody(simple("{{hashicorp:newsecret/additional1:admin}}")).to("mock:bar"); } }); context.start(); @@ -313,37 +324,41 @@ public class HashicorpVaultPropertiesSourceTestIT extends CamelTestSupport { assertMockEndpointsSatisfied(); } - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_ACCESS_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_SECRET_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_REGION", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_ENGINE_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME_ENV", matches = ".*") @Test public void testPropertiesWithDefaultFunction() throws Exception { context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:username").setBody(simple("{{aws:postgresql/username:oscerd}}")).to("mock:bar"); - from("direct:password").setBody(simple("{{aws:postgresql/password:password}}")).to("mock:bar"); + from("direct:username").setBody(simple("{{hashicorp:postgresql/username:oscerd}}")).to("mock:bar"); + from("direct:password").setBody(simple("{{hashicorp:postgresql/password:password}}")).to("mock:bar"); } }); context.start(); - getMockEndpoint("mock:bar").expectedBodiesReceived("postgres", "secret"); + getMockEndpoint("mock:bar").expectedBodiesReceived("oscerd", "password"); 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 = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_ENGINE_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME_ENV", matches = ".*") @Test public void testPropertiesWithDefaultNotExistentFunction() throws Exception { context.addRoutes(new RouteBuilder() { @Override public void configure() { - 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"); + from("direct:username").setBody(simple("{{hashicorp:db_sample/username:oscerd}}")).to("mock:bar"); + from("direct:password").setBody(simple("{{hashicorp:db_sample/password:password}}")).to("mock:bar"); } }); context.start(); @@ -355,73 +370,81 @@ public class HashicorpVaultPropertiesSourceTestIT extends CamelTestSupport { assertMockEndpointsSatisfied(); } - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_ACCESS_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_SECRET_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_REGION", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_ENGINE_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME_ENV", matches = ".*") @Test public void testPropertiesWithVersionFunction() throws Exception { context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:version").setBody(simple("{{aws:test/id@e8d0e680-a504-4b70-a9b2-acf5efe0ba23}}")).to("mock:bar"); + from("direct:version").setBody(simple("{{hashicorp:hello/id@1}}")).to("mock:bar"); } }); context.start(); - getMockEndpoint("mock:bar").expectedBodiesReceived("27"); + getMockEndpoint("mock:bar").expectedBodiesReceived("21"); template.sendBody("direct:version", "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 = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_ENGINE_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME_ENV", matches = ".*") @Test public void testPropertiesWithVersionAndNoFieldFunction() throws Exception { context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:version").setBody(simple("{{aws:test@e8d0e680-a504-4b70-a9b2-acf5efe0ba23}}")).to("mock:bar"); + from("direct:version").setBody(simple("{{hashicorp:hello@1}}")).to("mock:bar"); } }); context.start(); - getMockEndpoint("mock:bar").expectedBodiesReceived("{\"id\":\"27\"}"); + getMockEndpoint("mock:bar").expectedBodiesReceived("{id=21}"); template.sendBody("direct:version", "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 = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_ENGINE_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME_ENV", matches = ".*") @Test public void testPropertiesWithVersionNoFieldAndDefaultValueFunction() throws Exception { context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:version").setBody(simple("{{aws:test:pippo@e8d0e680-a504-4b70-a9b2-acf5efe0ba23}}")) + from("direct:version").setBody(simple("{{hashicorp:hello:pippo@1}}")) .to("mock:bar"); } }); context.start(); - getMockEndpoint("mock:bar").expectedBodiesReceived("{\"id\":\"27\"}"); + getMockEndpoint("mock:bar").expectedBodiesReceived("{id=21}"); template.sendBody("direct:version", "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 = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_ENGINE_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME_ENV", matches = ".*") @Test public void testPropertiesWithVersionNoFieldDefaultValueNotExistentSecretFunction() throws Exception { context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:version").setBody(simple("{{aws:test1:pippo@e8d0e680-a504-4b70-a9b2-acf5efe0ba23}}")) + from("direct:version").setBody(simple("{{hashicorp:hello-3:pippo@4}}")) .to("mock:bar"); } }); @@ -433,15 +456,17 @@ public class HashicorpVaultPropertiesSourceTestIT extends CamelTestSupport { assertMockEndpointsSatisfied(); } - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_ACCESS_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_SECRET_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_REGION", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_ENGINE_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME_ENV", matches = ".*") @Test public void testPropertiesWithVersionNoFieldDefaultValueNotExistentVersionFunction() throws Exception { context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:version").setBody(simple("{{aws:test1:pippo@e8d0e680-a504-4b70-a9b2-acf5efe0ba29}}")) + from("direct:version").setBody(simple("{{hashicorp:hello:pippo@4}}")) .to("mock:bar"); } }); @@ -453,21 +478,23 @@ public class HashicorpVaultPropertiesSourceTestIT extends CamelTestSupport { assertMockEndpointsSatisfied(); } - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_ACCESS_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_SECRET_KEY", matches = ".*") - @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_AWS_REGION", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_TOKEN_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_ENGINE_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_HOST_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_PORT_ENV", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_HASHICORP_VAULT_SCHEME_ENV", matches = ".*") @Test public void testPropertiesWithVersionFieldAndDefaultValueFunction() throws Exception { context.addRoutes(new RouteBuilder() { @Override public void configure() { - from("direct:version").setBody(simple("{{aws:test/id:pippo@e8d0e680-a504-4b70-a9b2-acf5efe0ba23}}")) + from("direct:version").setBody(simple("{{hashicorp:hello/id:pippo@1}}")) .to("mock:bar"); } }); context.start(); - getMockEndpoint("mock:bar").expectedBodiesReceived("27"); + getMockEndpoint("mock:bar").expectedBodiesReceived("21"); template.sendBody("direct:version", "Hello World"); assertMockEndpointsSatisfied();