1
15 package com.amazonaws.auth;
16
17 import static com.amazonaws.SDKGlobalConfiguration.ACCESS_KEY_ENV_VAR;
18 import static com.amazonaws.SDKGlobalConfiguration.ALTERNATE_ACCESS_KEY_ENV_VAR;
19 import static com.amazonaws.SDKGlobalConfiguration.ALTERNATE_SECRET_KEY_ENV_VAR;
20 import static com.amazonaws.SDKGlobalConfiguration.AWS_SESSION_TOKEN_ENV_VAR;
21 import static com.amazonaws.SDKGlobalConfiguration.SECRET_KEY_ENV_VAR;
22
23 import com.amazonaws.SdkClientException;
24 import com.amazonaws.util.StringUtils;
25
26
31 public class EnvironmentVariableCredentialsProvider implements AWSCredentialsProvider {
32 @Override
33 public AWSCredentials getCredentials() {
34 String accessKey = System.getenv(ACCESS_KEY_ENV_VAR);
35 if (accessKey == null) {
36 accessKey = System.getenv(ALTERNATE_ACCESS_KEY_ENV_VAR);
37 }
38
39 String secretKey = System.getenv(SECRET_KEY_ENV_VAR);
40 if (secretKey == null) {
41 secretKey = System.getenv(ALTERNATE_SECRET_KEY_ENV_VAR);
42 }
43
44 accessKey = StringUtils.trim(accessKey);
45 secretKey = StringUtils.trim(secretKey);
46 String sessionToken = StringUtils.trim(System.getenv(AWS_SESSION_TOKEN_ENV_VAR));
47
48 if (StringUtils.isNullOrEmpty(accessKey) || StringUtils.isNullOrEmpty(secretKey)) {
49
50 throw new SdkClientException(
51 "Unable to load AWS credentials from environment variables " +
52 "(" + ACCESS_KEY_ENV_VAR + " (or " + ALTERNATE_ACCESS_KEY_ENV_VAR + ") and " +
53 SECRET_KEY_ENV_VAR + " (or " + ALTERNATE_SECRET_KEY_ENV_VAR + "))");
54 }
55
56 return sessionToken == null ?
57 new BasicAWSCredentials(accessKey, secretKey)
58 :
59 new BasicSessionCredentials(accessKey, secretKey, sessionToken);
60 }
61
62 @Override
63 public void refresh() {
64 }
65
66 @Override
67 public String toString() {
68 return getClass().getSimpleName();
69 }
70 }