Skip to content

Commit

Permalink
HADOOP-13389 TestS3ATemporaryCredentials.testSTS error when using IAM…
Browse files Browse the repository at this point in the history
… credentials. Contributed by Steven K. Wong
  • Loading branch information
steveloughran committed Jul 23, 2016
1 parent b79ba4f commit 7052ca8
Showing 1 changed file with 11 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@
package org.apache.hadoop.fs.s3a;

import java.io.IOException;
import java.net.URI;

import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProviderChain;
import com.amazonaws.auth.InstanceProfileCredentialsProvider;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient;
import com.amazonaws.services.securitytoken.model.GetSessionTokenRequest;
import com.amazonaws.services.securitytoken.model.GetSessionTokenResult;
Expand All @@ -31,6 +31,7 @@
import org.apache.hadoop.fs.contract.AbstractFSContract;
import org.apache.hadoop.fs.contract.AbstractFSContractTestBase;
import org.apache.hadoop.fs.contract.s3a.S3AContract;
import org.apache.hadoop.fs.s3native.S3xLoginHelper;
import org.apache.hadoop.conf.Configuration;

import org.junit.Test;
Expand All @@ -54,9 +55,6 @@ public class TestS3ATemporaryCredentials extends AbstractFSContractTestBase {
private static final Logger LOG =
LoggerFactory.getLogger(TestS3ATemporaryCredentials.class);

private S3AFileSystem fs;


private static final String PROVIDER_CLASS =
"org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider";

Expand Down Expand Up @@ -84,15 +82,15 @@ public void testSTS() throws IOException {
skip("STS functional tests disabled");
}

String parentAccessKey = conf.getTrimmed(ACCESS_KEY, null);
String parentSecretKey = conf.getTrimmed(SECRET_KEY, null);
String stsEndpoint = conf.getTrimmed(TEST_STS_ENDPOINT, "");
AWSCredentialsProviderChain parentCredentials;
parentCredentials = new AWSCredentialsProviderChain(
new BasicAWSCredentialsProvider(parentAccessKey, parentSecretKey),
new InstanceProfileCredentialsProvider()
);
S3xLoginHelper.Login login = S3AUtils.getAWSAccessKeys(
URI.create("s3a://foobar"), conf);
if (!login.hasLogin()) {
skip("testSTS disabled because AWS credentials not configured");
}
AWSCredentialsProvider parentCredentials = new BasicAWSCredentialsProvider(
login.getUser(), login.getPassword());

String stsEndpoint = conf.getTrimmed(TEST_STS_ENDPOINT, "");
AWSSecurityTokenServiceClient stsClient;
stsClient = new AWSSecurityTokenServiceClient(parentCredentials);
if (!stsEndpoint.isEmpty()) {
Expand Down

0 comments on commit 7052ca8

Please sign in to comment.