diff options
Diffstat (limited to 'src/main/java/com/p4square/grow/config/ConfigCredentialProvider.java')
-rw-r--r-- | src/main/java/com/p4square/grow/config/ConfigCredentialProvider.java | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/main/java/com/p4square/grow/config/ConfigCredentialProvider.java b/src/main/java/com/p4square/grow/config/ConfigCredentialProvider.java new file mode 100644 index 0000000..06abd48 --- /dev/null +++ b/src/main/java/com/p4square/grow/config/ConfigCredentialProvider.java @@ -0,0 +1,43 @@ +package com.p4square.grow.config; + +import com.amazonaws.auth.AWSCredentials; +import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; + +/** + * AWSCredentials credentials backed by config. + * + * Falls back to DefaultAWSCredentialsProviderChain if the credentials are not in the config. + */ +public class ConfigCredentialProvider implements AWSCredentials { + + private AWSCredentials mCredentials; + + public ConfigCredentialProvider(final Config config) { + String awsAccessKey = config.getString("awsAccessKey"); + if (awsAccessKey != null) { + mCredentials = new AWSCredentials() { + @Override + public String getAWSAccessKeyId() { + return config.getString("awsAccessKey"); + } + + @Override + public String getAWSSecretKey() { + return config.getString("awsSecretKey"); + } + }; + } else { + mCredentials = new DefaultAWSCredentialsProviderChain().getCredentials(); + } + } + + @Override + public String getAWSAccessKeyId() { + return mCredentials.getAWSAccessKeyId(); + } + + @Override + public String getAWSSecretKey() { + return mCredentials.getAWSSecretKey(); + } +} |