// ??? import com.amazonaws.annotation.ThreadSafe; com.amazonaws.http.AmazonHttpClient // Logger providing detailed information on requests/responses. Users can enable this logger to // get access to AWS request IDs for responses, individual requests and parameters sent to AWS, etc. @SdkInternalApi public static final Log requestLog = LogFactory.getLog("com.amazonaws.request"); // Returns the credentials from the execution if exists. Else returns null. private AWSCredentials getCredentialsFromContext() { final AWSCredentialsProvider credentialsProvider = executionContext.getCredentialsProvider(); AWSCredentials credentials = null; if (credentialsProvider != null) { awsRequestMetrics.startEvent(Field.CredentialsRequestTime); try { credentials = credentialsProvider.getCredentials(); } finally { awsRequestMetrics.endEvent(Field.CredentialsRequestTime); } } return credentials; } package com.amazonaws.auth; /** * {@link AWSCredentialsProvider} implementation that chains together multiple * credentials providers. When a caller first requests credentials from this provider, * it calls all the providers in the chain, in the original order specified, * until one can provide credentials, and then returns those credentials. If all * of the credential providers in the chain have been called, and none of them * can provide credentials, then this class will throw an exception indicated * that no credentials are available. *
* By default, this class will remember the first credentials provider in the chain
* that was able to provide credentials, and will continue to use that provider when
* credentials are requested in the future, instead of traversing the chain each time.
* This behavior can be controlled through the {@link #setReuseLastProvider(boolean)} method.
*/
public class AWSCredentialsProviderChain implements AWSCredentialsProvider {
...
private static final Log log = LogFactory.getLog(AWSCredentialsProviderChain.class);
..
@Override
public AWSCredentials getCredentials() {
if (reuseLastProvider && lastUsedProvider != null) {
return lastUsedProvider.getCredentials();
}
List