Reorganize getValidCredentialsProviders to simplify calls
This commit is contained in:
parent
ac7d975c5f
commit
f87bf83deb
1 changed files with 14 additions and 28 deletions
|
|
@ -85,19 +85,12 @@ class AwsCredentialsProviderPropertyValueDecoder implements IPropertyValueDecode
|
||||||
if (clazz == null) {
|
if (clazz == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
AwsCredentialsProvider provider = null;
|
log.info("Attempting to construct {}", clazz);
|
||||||
if (nameAndArgs.length > 1) {
|
final String[] varargs =
|
||||||
final String[] varargs = Arrays.copyOfRange(nameAndArgs, 1, nameAndArgs.length);
|
nameAndArgs.length > 1 ? Arrays.copyOfRange(nameAndArgs, 1, nameAndArgs.length) : new String[0];
|
||||||
provider = tryConstructorWithArgs(providerName, clazz, varargs);
|
AwsCredentialsProvider provider = tryConstructor(providerName, clazz, varargs);
|
||||||
if (provider == null) {
|
|
||||||
provider = tryCreateWithArgs(providerName, clazz, varargs);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (provider == null) {
|
if (provider == null) {
|
||||||
provider = tryConstructorWithNoArgs(providerName, clazz);
|
provider = tryCreate(providerName, clazz, varargs);
|
||||||
}
|
|
||||||
if (provider == null) {
|
|
||||||
provider = tryCreateWithNoArgs(providerName, clazz);
|
|
||||||
}
|
}
|
||||||
if (provider != null) {
|
if (provider != null) {
|
||||||
credentialsProviders.add(provider);
|
credentialsProviders.add(provider);
|
||||||
|
|
@ -106,36 +99,32 @@ class AwsCredentialsProviderPropertyValueDecoder implements IPropertyValueDecode
|
||||||
return credentialsProviders;
|
return credentialsProviders;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static AwsCredentialsProvider tryConstructorWithArgs(
|
private static AwsCredentialsProvider tryConstructor(
|
||||||
String providerName, Class<? extends AwsCredentialsProvider> clazz, String[] varargs) {
|
String providerName, Class<? extends AwsCredentialsProvider> clazz, String[] varargs) {
|
||||||
AwsCredentialsProvider provider =
|
AwsCredentialsProvider provider =
|
||||||
constructProvider(providerName, () -> getConstructorWithVarArgs(clazz, varargs));
|
constructProvider(providerName, () -> getConstructorWithVarArgs(clazz, varargs));
|
||||||
if (provider == null) {
|
if (provider == null) {
|
||||||
provider = constructProvider(providerName, () -> getConstructorWithArgs(clazz, varargs));
|
provider = constructProvider(providerName, () -> getConstructorWithArgs(clazz, varargs));
|
||||||
}
|
}
|
||||||
|
if (provider == null) {
|
||||||
|
provider = constructProvider(providerName, clazz::newInstance);
|
||||||
|
}
|
||||||
return provider;
|
return provider;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static AwsCredentialsProvider tryCreateWithArgs(
|
private static AwsCredentialsProvider tryCreate(
|
||||||
String providerName, Class<? extends AwsCredentialsProvider> clazz, String[] varargs) {
|
String providerName, Class<? extends AwsCredentialsProvider> clazz, String[] varargs) {
|
||||||
AwsCredentialsProvider provider =
|
AwsCredentialsProvider provider =
|
||||||
constructProvider(providerName, () -> getCreateMethod(clazz, (Object) varargs));
|
constructProvider(providerName, () -> getCreateMethod(clazz, (Object) varargs));
|
||||||
if (provider == null) {
|
if (provider == null) {
|
||||||
provider = constructProvider(providerName, () -> getCreateMethod(clazz, varargs));
|
provider = constructProvider(providerName, () -> getCreateMethod(clazz, varargs));
|
||||||
}
|
}
|
||||||
|
if (provider == null) {
|
||||||
|
provider = constructProvider(providerName, () -> getCreateMethod(clazz));
|
||||||
|
}
|
||||||
return provider;
|
return provider;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static AwsCredentialsProvider tryConstructorWithNoArgs(
|
|
||||||
String providerName, Class<? extends AwsCredentialsProvider> clazz) {
|
|
||||||
return constructProvider(providerName, clazz::newInstance);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static AwsCredentialsProvider tryCreateWithNoArgs(
|
|
||||||
String providerName, Class<? extends AwsCredentialsProvider> clazz) {
|
|
||||||
return constructProvider(providerName, () -> getCreateMethod(clazz));
|
|
||||||
}
|
|
||||||
|
|
||||||
private static AwsCredentialsProvider getConstructorWithVarArgs(
|
private static AwsCredentialsProvider getConstructorWithVarArgs(
|
||||||
Class<? extends AwsCredentialsProvider> clazz, String[] varargs) {
|
Class<? extends AwsCredentialsProvider> clazz, String[] varargs) {
|
||||||
try {
|
try {
|
||||||
|
|
@ -191,21 +180,18 @@ class AwsCredentialsProviderPropertyValueDecoder implements IPropertyValueDecode
|
||||||
|| providerName.equals(StsAssumeRoleCredentialsProvider.class.getName())) {
|
|| providerName.equals(StsAssumeRoleCredentialsProvider.class.getName())) {
|
||||||
providerName = KclStsAssumeRoleCredentialsProvider.class.getName();
|
providerName = KclStsAssumeRoleCredentialsProvider.class.getName();
|
||||||
}
|
}
|
||||||
final Class<? extends AwsCredentialsProvider> clazz;
|
|
||||||
try {
|
try {
|
||||||
final Class<?> c = Class.forName(providerName);
|
final Class<?> c = Class.forName(providerName);
|
||||||
if (!AwsCredentialsProvider.class.isAssignableFrom(c)) {
|
if (!AwsCredentialsProvider.class.isAssignableFrom(c)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
clazz = (Class<? extends AwsCredentialsProvider>) c;
|
return (Class<? extends AwsCredentialsProvider>) c;
|
||||||
} catch (ClassNotFoundException cnfe) {
|
} catch (ClassNotFoundException cnfe) {
|
||||||
// Providers are a product of prefixed Strings to cover multiple
|
// Providers are a product of prefixed Strings to cover multiple
|
||||||
// namespaces (e.g., "Foo" -> { "some.auth.Foo", "kcl.auth.Foo" }).
|
// namespaces (e.g., "Foo" -> { "some.auth.Foo", "kcl.auth.Foo" }).
|
||||||
// It's expected that many class names will not resolve.
|
// It's expected that many class names will not resolve.
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
log.info("Attempting to construct {}", clazz);
|
|
||||||
return clazz;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<String> getProviderNames(String property) {
|
private static List<String> getProviderNames(String property) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue