summaryrefslogtreecommitdiff
path: root/src/main/java/com/p4square/grow/config/ConfigCredentialProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/p4square/grow/config/ConfigCredentialProvider.java')
-rw-r--r--src/main/java/com/p4square/grow/config/ConfigCredentialProvider.java43
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();
+ }
+}