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 6282b28ec91318784852b2231b27305e946c77ac Author: Andrea Cosentino <[email protected]> AuthorDate: Tue Jun 1 07:55:03 2021 +0200 CAMEL-16465 - Camel-AWS: Add useDefaultCredentialProvider option to all the components - Secrets Manager Component --- .../secretsmanager/SecretsManagerComponent.java | 4 +- .../aws/secretsmanager/SecretsManagerEndpoint.java | 47 ++-------------------- .../client/SecretsManagerClientFactory.java | 2 +- 3 files changed, 6 insertions(+), 47 deletions(-) diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerComponent.java b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerComponent.java index a9e11e6..768d03f 100644 --- a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerComponent.java +++ b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerComponent.java @@ -47,9 +47,9 @@ public class SecretsManagerComponent extends DefaultComponent { = this.configuration != null ? this.configuration.copy() : new SecretsManagerConfiguration(); SecretsManagerEndpoint endpoint = new SecretsManagerEndpoint(uri, this, configuration); setProperties(endpoint, parameters); - if (configuration.getSecretsManagerClient() == null + if (!configuration.isUseDefaultCredentialsProvider() && configuration.getSecretsManagerClient() == null && (configuration.getAccessKey() == null || configuration.getSecretKey() == null)) { - throw new IllegalArgumentException("Amazon Secrets Manager client or accessKey and secretKey must be specified"); + throw new IllegalArgumentException("useDefaultCredentialsProvider is set to false, Amazon Secrets Manager client or accessKey and secretKey must be specified"); } return endpoint; diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerEndpoint.java b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerEndpoint.java index 619f7b3..e8aba31 100644 --- a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerEndpoint.java +++ b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerEndpoint.java @@ -23,6 +23,7 @@ import org.apache.camel.Component; import org.apache.camel.Consumer; import org.apache.camel.Processor; import org.apache.camel.Producer; +import org.apache.camel.component.aws.secretsmanager.client.SecretsManagerClientFactory; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; import org.apache.camel.support.ScheduledPollEndpoint; @@ -70,7 +71,8 @@ public class SecretsManagerEndpoint extends ScheduledPollEndpoint { super.doStart(); secretsManagerClient = configuration.getSecretsManagerClient() != null - ? configuration.getSecretsManagerClient() : createSecretsManagerClient(); + ? configuration.getSecretsManagerClient() + : SecretsManagerClientFactory.getSecretsManagerClient(configuration).getSecretsManagerClient(); } @Override @@ -90,47 +92,4 @@ public class SecretsManagerEndpoint extends ScheduledPollEndpoint { public SecretsManagerClient getSecretsManagerClient() { return secretsManagerClient; } - - SecretsManagerClient createSecretsManagerClient() { - SecretsManagerClient client = null; - SecretsManagerClientBuilder clientBuilder = SecretsManagerClient.builder(); - ProxyConfiguration.Builder proxyConfig = null; - ApacheHttpClient.Builder httpClientBuilder = null; - boolean isClientConfigFound = false; - if (ObjectHelper.isNotEmpty(configuration.getProxyHost()) && ObjectHelper.isNotEmpty(configuration.getProxyPort())) { - proxyConfig = ProxyConfiguration.builder(); - URI proxyEndpoint = URI.create(configuration.getProxyProtocol() + "://" + configuration.getProxyHost() + ":" - + configuration.getProxyPort()); - proxyConfig.endpoint(proxyEndpoint); - httpClientBuilder = ApacheHttpClient.builder().proxyConfiguration(proxyConfig.build()); - isClientConfigFound = true; - } - if (configuration.getAccessKey() != null && configuration.getSecretKey() != null) { - AwsBasicCredentials cred = AwsBasicCredentials.create(configuration.getAccessKey(), configuration.getSecretKey()); - if (isClientConfigFound) { - clientBuilder = clientBuilder.httpClientBuilder(httpClientBuilder) - .credentialsProvider(StaticCredentialsProvider.create(cred)); - } else { - clientBuilder = clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred)); - } - } else { - if (!isClientConfigFound) { - clientBuilder = clientBuilder.httpClientBuilder(httpClientBuilder); - } - } - if (ObjectHelper.isNotEmpty(configuration.getRegion())) { - clientBuilder = clientBuilder.region(Region.of(configuration.getRegion())); - } - if (configuration.isTrustAllCertificates()) { - SdkHttpClient ahc = ApacheHttpClient.builder().buildWithDefaults(AttributeMap - .builder() - .put( - SdkHttpConfigurationOption.TRUST_ALL_CERTIFICATES, - Boolean.TRUE) - .build()); - clientBuilder.httpClient(ahc); - } - client = clientBuilder.build(); - return client; - } } diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/client/SecretsManagerClientFactory.java b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/client/SecretsManagerClientFactory.java index efb6a17..7a0ae0d 100644 --- a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/client/SecretsManagerClientFactory.java +++ b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/client/SecretsManagerClientFactory.java @@ -34,7 +34,7 @@ public final class SecretsManagerClientFactory { * @param configuration configuration * @return SecretsManagerClient */ - public static SecretsManagerInternalClient getTranslateClient(SecretsManagerConfiguration configuration) { + public static SecretsManagerInternalClient getSecretsManagerClient(SecretsManagerConfiguration configuration) { return configuration.isUseDefaultCredentialsProvider() ? new SecretsManagerClientIAMOptimized(configuration) : new SecretsManagerClientStandardImpl(configuration); }
