
software.amazon.msk.auth.iam.internals.EnhancedProfileCredentialsProvider Maven / Gradle / Ivy
package software.amazon.msk.auth.iam.internals;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.auth.BasicSessionCredentials;
import software.amazon.awssdk.auth.credentials.AwsSessionCredentials;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.profiles.ProfileFile;
/**
* This credential provider delegates to the v2 ProfileCredentialProvider so that users
* are able to use Single Sign On credentials and also get more standard credential loading
* behavior.
* See https://github.com/aws/aws-sdk-java/issues/803#issuecomment-593530484
*/
public class EnhancedProfileCredentialsProvider implements AWSCredentialsProvider {
private final ProfileCredentialsProvider delegate;
public EnhancedProfileCredentialsProvider() {
delegate = ProfileCredentialsProvider.create();
}
public EnhancedProfileCredentialsProvider(String profileName) {
delegate = ProfileCredentialsProvider.create(profileName);
}
public EnhancedProfileCredentialsProvider(ProfileFile profileFile, String profileName) {
delegate = ProfileCredentialsProvider.builder().profileFile(profileFile).profileName(profileName).build();
}
@Override
public AWSCredentials getCredentials() {
software.amazon.awssdk.auth.credentials.AwsCredentials credentialsV2 = delegate.resolveCredentials();
if (credentialsV2 instanceof AwsSessionCredentials) {
AwsSessionCredentials sessionCredentialsV2 = (AwsSessionCredentials) credentialsV2;
return new BasicSessionCredentials(sessionCredentialsV2.accessKeyId(),
sessionCredentialsV2.secretAccessKey(), sessionCredentialsV2.sessionToken());
}
return new BasicAWSCredentials(credentialsV2.accessKeyId(), credentialsV2.secretAccessKey());
}
@Override
public void refresh() {
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy