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 bb7edec1a23d1a7d85683b309ae12b5511ed51b8 Author: Andrea Cosentino <[email protected]> AuthorDate: Fri Mar 4 06:46:25 2022 +0100 CAMEL-17739 - Camel Google Secret Manager Properties Source: Support the usage of client default instance --- .../GoogleSecretManagerPropertiesFunction.java | 6 ++++++ .../GoogleSecretManagerPropertiesSourceTestIT.java | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerPropertiesFunction.java b/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerPropertiesFunction.java index e562cfa..9059a16 100644 --- a/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerPropertiesFunction.java +++ b/components/camel-google/camel-google-secret-manager/src/main/java/org/apache/camel/component/google/secret/manager/GoogleSecretManagerPropertiesFunction.java @@ -75,6 +75,7 @@ public class GoogleSecretManagerPropertiesFunction extends ServiceSupport implem private static final String CAMEL_VAULT_GCP_SERVICE_ACCOUNT_KEY = "CAMEL_VAULT_GCP_SERVICE_ACCOUNT_KEY"; private static final String CAMEL_VAULT_GCP_PROJECT_ID = "CAMEL_VAULT_GCP_PROJECT_ID"; + private static final String CAMEL_VAULT_GCP_USE_DEFAULT_INSTANCE = "CAMEL_VAULT_GCP_USE_DEFAULT_INSTANCE"; private CamelContext camelContext; private SecretManagerServiceClient client; private String projectId; @@ -83,12 +84,14 @@ public class GoogleSecretManagerPropertiesFunction extends ServiceSupport implem protected void doStart() throws Exception { super.doStart(); String serviceAccountKey = System.getenv(CAMEL_VAULT_GCP_SERVICE_ACCOUNT_KEY); + boolean useDefaultInstance = Boolean.parseBoolean(System.getenv(CAMEL_VAULT_GCP_USE_DEFAULT_INSTANCE)); projectId = System.getenv(CAMEL_VAULT_GCP_PROJECT_ID); if (ObjectHelper.isEmpty(serviceAccountKey) && ObjectHelper.isEmpty(projectId)) { GcpVaultConfiguration gcpVaultConfiguration = getCamelContext().getVaultConfiguration().gcp(); if (ObjectHelper.isNotEmpty(gcpVaultConfiguration)) { serviceAccountKey = gcpVaultConfiguration.getServiceAccountKey(); projectId = gcpVaultConfiguration.getProjectId(); + useDefaultInstance = gcpVaultConfiguration.isUseDefaultInstance(); } } if (ObjectHelper.isNotEmpty(serviceAccountKey) && ObjectHelper.isNotEmpty(projectId)) { @@ -99,6 +102,9 @@ public class GoogleSecretManagerPropertiesFunction extends ServiceSupport implem SecretManagerServiceSettings settings = SecretManagerServiceSettings.newBuilder() .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials)).build(); client = SecretManagerServiceClient.create(settings); + } else if ( useDefaultInstance && ObjectHelper.isNotEmpty(projectId)) { + SecretManagerServiceSettings settings = SecretManagerServiceSettings.newBuilder().build(); + client = SecretManagerServiceClient.create(settings); } else { throw new RuntimeCamelException( "Using the GCP Secret Manager Properties Function requires setting GCP service account key and project Id as application properties or environment variables"); diff --git a/components/camel-google/camel-google-secret-manager/src/test/java/org/apache/camel/component/google/secret/manager/integration/GoogleSecretManagerPropertiesSourceTestIT.java b/components/camel-google/camel-google-secret-manager/src/test/java/org/apache/camel/component/google/secret/manager/integration/GoogleSecretManagerPropertiesSourceTestIT.java index 76972dc..0e85630 100644 --- a/components/camel-google/camel-google-secret-manager/src/test/java/org/apache/camel/component/google/secret/manager/integration/GoogleSecretManagerPropertiesSourceTestIT.java +++ b/components/camel-google/camel-google-secret-manager/src/test/java/org/apache/camel/component/google/secret/manager/integration/GoogleSecretManagerPropertiesSourceTestIT.java @@ -187,4 +187,25 @@ public class GoogleSecretManagerPropertiesSourceTestIT extends CamelTestSupport template.sendBody("direct:password", "Hello World"); assertMockEndpointsSatisfied(); } + + @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_GCP_USE_DEFAULT_INSTACE", matches = ".*") + @EnabledIfEnvironmentVariable(named = "CAMEL_VAULT_GCP_PROJECT_ID", matches = ".*") + @EnabledIfEnvironmentVariable(named = "GOOGLE_APPLICATION_CREDENTIALS", matches = ".*") + @Test + public void testComplexPropertiesDefaultInstanceFunction() throws Exception { + context.addRoutes(new RouteBuilder() { + @Override + public void configure() throws Exception { + from("direct:username").setBody(simple("{{gcp:test-3:admin}}")).to("mock:bar"); + from("direct:password").setBody(simple("{{gcp:test-1:secret}}")).to("mock:bar"); + } + }); + context.start(); + + getMockEndpoint("mock:bar").expectedBodiesReceived("admin", "secret"); + + template.sendBody("direct:username", "Hello World"); + template.sendBody("direct:password", "Hello World"); + assertMockEndpointsSatisfied(); + } }
