/** * @deprecated Extend from {@link AWSIntegrationTestBase} to access credentials */ @Deprecated public static void setUpCredentials() { if (credentials == null) { try { credentials = chain.getCredentials(); } catch (Exception ignored) { } } }
/** * Before of super class is guaranteed to be called before that of a subclass so the following * is safe. http://junit-team.github.io/junit/javadoc/latest/org/junit/Before.html */ @BeforeClass public static void setUpCredentials() { if (credentials == null) { try { credentials = chain.getCredentials(); } catch (Exception ignored) { } } }
/** * Tests that, by default, the chain remembers which provider was able to * provide credentials, and only calls that provider for any additional * calls to getCredentials. */ @Test public void testReusingLastProvider() throws Exception { MockCredentialsProvider provider1 = new MockCredentialsProvider(); provider1.throwException = true; MockCredentialsProvider provider2 = new MockCredentialsProvider(); AWSCredentialsProviderChain chain = new AWSCredentialsProviderChain(provider1, provider2); assertEquals(0, provider1.getCredentialsCallCount); assertEquals(0, provider2.getCredentialsCallCount); chain.getCredentials(); assertEquals(1, provider1.getCredentialsCallCount); assertEquals(1, provider2.getCredentialsCallCount); chain.getCredentials(); assertEquals(1, provider1.getCredentialsCallCount); assertEquals(2, provider2.getCredentialsCallCount); chain.getCredentials(); assertEquals(1, provider1.getCredentialsCallCount); assertEquals(3, provider2.getCredentialsCallCount); }
/** * Tests that, when provider caching is disabled, the chain will always try * all providers in the chain, starting with the first, until it finds a * provider that can return credentials. */ @Test public void testDisableReusingLastProvider() throws Exception { MockCredentialsProvider provider1 = new MockCredentialsProvider(); provider1.throwException = true; MockCredentialsProvider provider2 = new MockCredentialsProvider(); AWSCredentialsProviderChain chain = new AWSCredentialsProviderChain(provider1, provider2); chain.setReuseLastProvider(false); assertEquals(0, provider1.getCredentialsCallCount); assertEquals(0, provider2.getCredentialsCallCount); chain.getCredentials(); assertEquals(1, provider1.getCredentialsCallCount); assertEquals(1, provider2.getCredentialsCallCount); chain.getCredentials(); assertEquals(2, provider1.getCredentialsCallCount); assertEquals(2, provider2.getCredentialsCallCount); }
/** * Create AWSCredentionals from the information in system properties, environment variables, settings.xml, or EC2 instance metadata (only applicable when running the wagon on * an Amazon EC2 instance) */ protected AWSCredentials getCredentials(final AuthenticationInfo authenticationInfo) { Optional<AuthenticationInfo> auth = Optional.fromNullable(authenticationInfo); AWSCredentialsProviderChain chain = new MavenAwsCredentialsProviderChain(auth); AWSCredentials credentials = chain.getCredentials(); if (credentials instanceof AWSSessionCredentials) { return new AwsSessionCredentials((AWSSessionCredentials) credentials); } else { return new AwsCredentials(credentials); } }
@Override public AWSCredentials getCredentials() { AWSCredentials creds = super.getCredentials(); String accessKey = creds.getAWSAccessKeyId(); String secretKey = EncUtils.decrypt(enc, creds.getAWSSecretKey()); if (creds instanceof AWSSessionCredentials) { AWSSessionCredentials sessionCreds = (AWSSessionCredentials) creds; return ImmutableAWSSessionCredentials.build(accessKey, secretKey, sessionCreds.getSessionToken()); } else { return ImmutableAWSCredentials.build(accessKey, secretKey); } }
credentials = credentialsProvider.getCredentials(); logger.debug("Read in credentials AWSAccessKeyId={} AWSSecretKey={}...", credentials.getAWSAccessKeyId(),
/********************** Member Functions **************************/ public AwsGlacierInventoryRetriever(String region) { // Get credentials from credentials file, environment variable, or // Java property. // See http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html AWSCredentialsProviderChain credentialsProvider = new DefaultAWSCredentialsProviderChain(); AWSCredentials credentials = credentialsProvider.getCredentials(); logger.debug("Read in credentials AWSAccessKeyId={} AWSSecretKey={}...", credentials.getAWSAccessKeyId(), credentials.getAWSSecretKey().substring(0, 4)); // Create the glacier client and set to specified region. glacierClient = new AmazonGlacierClient(credentials); glacierClient.setEndpoint("https://glacier." + region + ".amazonaws.com"); // Set up params needed for retrieving vault inventory sqsClient = new AmazonSQSClient(credentials); sqsClient.setEndpoint("https://sqs." + region + ".amazonaws.com"); snsClient = new AmazonSNSClient(credentials); snsClient.setEndpoint("https://sns." + region + ".amazonaws.com"); setupSQS(); setupSNS(); }
@SuppressWarnings("unchecked") @Override public PutObjectResult answer(InvocationOnMock invocation) throws Throwable { AmazonS3Client amazonS3Client = invocation.getArgument(1); AWSCredentialsProviderChain awsCredentialsProviderChain = (AWSCredentialsProviderChain) ReflectionTestUtils.getField(amazonS3Client, "awsCredentialsProvider"); List<AWSCredentialsProvider> credentialsProviders = (List<AWSCredentialsProvider>) ReflectionTestUtils.getField(awsCredentialsProviderChain, "credentialsProviders"); assertEquals(2, credentialsProviders.size()); // refresh() does nothing, but gives code coverage credentialsProviders.get(0).refresh(); /* * We can't inspect the field directly since the class definition is private. * Instead we call the getCredentials() and verify that it returns the credentials staged as part of this test. */ AWSCredentials credentials = awsCredentialsProviderChain.getCredentials(); assertEquals(BasicSessionCredentials.class, credentials.getClass()); BasicSessionCredentials basicSessionCredentials = (BasicSessionCredentials) credentials; assertEquals(awsAccessKey, basicSessionCredentials.getAWSAccessKeyId()); assertEquals(awsSecretKey, basicSessionCredentials.getAWSSecretKey()); assertEquals(awsSessionToken, basicSessionCredentials.getSessionToken()); return new PutObjectResult(); } });