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

com.ibm.cloud.objectstorage.auth.EC2ContainerCredentialsProviderWrapper Maven / Gradle / Ivy

Go to download

A single bundled dependency that includes all service and dependent JARs with third-party libraries relocated to different namespaces.

There is a newer version: 2.14.0
Show newest version
/*
 * Copyright 2011-2017 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.
 * You may obtain a copy of the License at:
 *
 *    http://aws.amazon.com/apache2.0
 *
 * 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.ibm.cloud.objectstorage.auth;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * 

* {@link AWSCredentialsProvider} that loads credentials from Amazon EC2 Container Service * if "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" environment variable is set and * security manager has permission to access the variable, * otherwise loads credentials from Amazon EC2 Instance Metadata Service. *

*/ public class EC2ContainerCredentialsProviderWrapper implements AWSCredentialsProvider { private static final Log LOG = LogFactory.getLog(EC2ContainerCredentialsProviderWrapper.class); private final AWSCredentialsProvider provider; public EC2ContainerCredentialsProviderWrapper() { provider = initializeProvider(); } private AWSCredentialsProvider initializeProvider() { try { return System.getenv(ContainerCredentialsProvider.ECS_CONTAINER_CREDENTIALS_PATH) != null ? new ContainerCredentialsProvider() : InstanceProfileCredentialsProvider.getInstance(); } catch (SecurityException securityException) { LOG.debug("Security manager did not allow access to the ECS credentials environment variable " + ContainerCredentialsProvider.ECS_CONTAINER_CREDENTIALS_PATH + ". Please provide access to this environment variable if you want to load credentials from ECS Container."); return InstanceProfileCredentialsProvider.getInstance(); } } @Override public AWSCredentials getCredentials() { return provider.getCredentials(); } @Override public void refresh() { provider.refresh(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy