From cbf149af1f07bb98c1f856948a79dcf3fb0c43b3 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Mon, 4 Sep 2017 10:05:38 -0700 Subject: SESNotificationService to accept multiple destinations. notificationEmail is now a comma separated list of addresses. Adding unit tests for SESNotificationService. Refactored AWS credential selection into ConfigCredentialProvider. --- .../grow/config/ConfigCredentialProvider.java | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/main/java/com/p4square/grow/config/ConfigCredentialProvider.java (limited to 'src/main/java/com/p4square/grow/config/ConfigCredentialProvider.java') 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(); + } +} -- cgit v1.2.3