Specify sts provider path for conversion to kclStsProvider
This commit is contained in:
parent
4d5a3995f0
commit
ac7d975c5f
2 changed files with 11 additions and 5 deletions
|
|
@ -27,6 +27,8 @@ import java.util.stream.Stream;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
|
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
|
||||||
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
|
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
|
||||||
|
import software.amazon.awssdk.services.sts.auth.StsAssumeRoleCredentialsProvider;
|
||||||
|
import software.amazon.kinesis.multilang.auth.KclStsAssumeRoleCredentialsProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get AwsCredentialsProvider property.
|
* Get AwsCredentialsProvider property.
|
||||||
|
|
@ -184,12 +186,14 @@ class AwsCredentialsProviderPropertyValueDecoder implements IPropertyValueDecode
|
||||||
* or null if the class cannot be resolved or does not extend AwsCredentialsProvider.
|
* or null if the class cannot be resolved or does not extend AwsCredentialsProvider.
|
||||||
*/
|
*/
|
||||||
private static Class<? extends AwsCredentialsProvider> getClass(String providerName) {
|
private static Class<? extends AwsCredentialsProvider> getClass(String providerName) {
|
||||||
String className = providerName.replace(
|
// Convert any form of StsAssumeRoleCredentialsProvider string to KclStsAssumeRoleCredentialsProvider
|
||||||
"software.amazon.awssdk.auth.credentials.StsAssumeRoleCredentialsProvider",
|
if (providerName.equals(StsAssumeRoleCredentialsProvider.class.getSimpleName())
|
||||||
"software.amazon.kinesis.multilang.auth.KclStsAssumeRoleCredentialsProvider");
|
|| providerName.equals(StsAssumeRoleCredentialsProvider.class.getName())) {
|
||||||
|
providerName = KclStsAssumeRoleCredentialsProvider.class.getName();
|
||||||
|
}
|
||||||
final Class<? extends AwsCredentialsProvider> clazz;
|
final Class<? extends AwsCredentialsProvider> clazz;
|
||||||
try {
|
try {
|
||||||
final Class<?> c = Class.forName(className);
|
final Class<?> c = Class.forName(providerName);
|
||||||
if (!AwsCredentialsProvider.class.isAssignableFrom(c)) {
|
if (!AwsCredentialsProvider.class.isAssignableFrom(c)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
|
||||||
import software.amazon.awssdk.auth.credentials.AwsCredentials;
|
import software.amazon.awssdk.auth.credentials.AwsCredentials;
|
||||||
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
|
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
|
||||||
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
|
import software.amazon.awssdk.auth.credentials.AwsCredentialsProviderChain;
|
||||||
|
import software.amazon.awssdk.services.sts.auth.StsAssumeRoleCredentialsProvider;
|
||||||
import software.amazon.kinesis.multilang.auth.KclStsAssumeRoleCredentialsProvider;
|
import software.amazon.kinesis.multilang.auth.KclStsAssumeRoleCredentialsProvider;
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.equalTo;
|
import static org.hamcrest.CoreMatchers.equalTo;
|
||||||
|
|
@ -121,7 +122,8 @@ public class AWSCredentialsProviderPropertyValueDecoderTest {
|
||||||
for (final String className : Arrays.asList(
|
for (final String className : Arrays.asList(
|
||||||
KclStsAssumeRoleCredentialsProvider.class.getName(), // fully-qualified name
|
KclStsAssumeRoleCredentialsProvider.class.getName(), // fully-qualified name
|
||||||
KclStsAssumeRoleCredentialsProvider.class.getSimpleName(), // name-only; needs prefix
|
KclStsAssumeRoleCredentialsProvider.class.getSimpleName(), // name-only; needs prefix
|
||||||
"software.amazon.awssdk.auth.credentials.StsAssumeRoleCredentialsProvider")) {
|
StsAssumeRoleCredentialsProvider.class.getName(), // user passes full sts package path
|
||||||
|
StsAssumeRoleCredentialsProvider.class.getSimpleName())) {
|
||||||
final AwsCredentialsProvider provider = decoder.decodeValue(className + "|arn|sessionName");
|
final AwsCredentialsProvider provider = decoder.decodeValue(className + "|arn|sessionName");
|
||||||
assertNotNull(className, provider);
|
assertNotNull(className, provider);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue