All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.auth.EnvironmentVariableCredentialsProvider Maven / Gradle / Ivy

Go to download

The AWS SDK for Java - Core module holds the classes that are used by the individual service clients to interact with Amazon Web Services. Users need to depend on aws-java-sdk artifact for accessing individual client classes.

There is a newer version: 1.12.778
Show newest version
/*
 * Copyright 2012-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.auth;

import static com.amazonaws.SDKGlobalConfiguration.ACCESS_KEY_ENV_VAR;
import static com.amazonaws.SDKGlobalConfiguration.ALTERNATE_ACCESS_KEY_ENV_VAR;
import static com.amazonaws.SDKGlobalConfiguration.ALTERNATE_SECRET_KEY_ENV_VAR;
import static com.amazonaws.SDKGlobalConfiguration.AWS_ACCOUNT_ID_ENV_VAR;
import static com.amazonaws.SDKGlobalConfiguration.AWS_SESSION_TOKEN_ENV_VAR;
import static com.amazonaws.SDKGlobalConfiguration.SECRET_KEY_ENV_VAR;

import com.amazonaws.SdkClientException;
import com.amazonaws.util.StringUtils;

/**
 * {@link AWSCredentialsProvider} implementation that provides credentials by looking at the: AWS_ACCESS_KEY_ID (or
 * AWS_ACCESS_KEY) and AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY) environment variables. If
 * the AWS_SESSION_TOKEN environment variable is also set then temporary credentials will be used.
 *
 * 

* Migrating to the AWS SDK for Java v2 *

* The v2 equivalent of this class is * EnvironmentVariableCredentialsProvider * *

* See Migration Guide * for more information. */ public class EnvironmentVariableCredentialsProvider implements AWSCredentialsProvider { private static final String PROVIDER_NAME = "EnvironmentVariableCredentialsProvider"; @Override public AWSCredentials getCredentials() { String accessKey = System.getenv(ACCESS_KEY_ENV_VAR); if (accessKey == null) { accessKey = System.getenv(ALTERNATE_ACCESS_KEY_ENV_VAR); } String secretKey = System.getenv(SECRET_KEY_ENV_VAR); if (secretKey == null) { secretKey = System.getenv(ALTERNATE_SECRET_KEY_ENV_VAR); } String accountId = System.getenv(AWS_ACCOUNT_ID_ENV_VAR); accessKey = StringUtils.trim(accessKey); secretKey = StringUtils.trim(secretKey); accountId = StringUtils.trim(accountId); if (StringUtils.isNullOrEmpty(accessKey) || StringUtils.isNullOrEmpty(secretKey)) { throw new SdkClientException( "Unable to load AWS credentials from environment variables " + "(" + ACCESS_KEY_ENV_VAR + " (or " + ALTERNATE_ACCESS_KEY_ENV_VAR + ") and " + SECRET_KEY_ENV_VAR + " (or " + ALTERNATE_SECRET_KEY_ENV_VAR + "))"); } String sessionToken = StringUtils.trim(System.getenv(AWS_SESSION_TOKEN_ENV_VAR)); return StringUtils.isNullOrEmpty(sessionToken) ? new BasicAWSCredentials(accessKey, secretKey, accountId, PROVIDER_NAME) : new BasicSessionCredentials(accessKey, secretKey, sessionToken, accountId, PROVIDER_NAME); } @Override public void refresh() { } @Override public String toString() { return getClass().getSimpleName(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy