in src/main/java/software/amazon/event/kafkaconnector/auth/EventBridgeAwsCredentialsProviderFactory.java [51:84]
public static AwsCredentialsProvider getAwsCredentialsProvider(EventBridgeSinkConfig config) {
if (isNotBlank(config.awsCredentialsProviderClass)) {
try {
// checks are already executed by EventBridgeSinkConnector#validate(Map)
var clazz = Class.forName(config.awsCredentialsProviderClass);
var ctor = clazz.getDeclaredConstructor();
var obj = ctor.newInstance();
if (Configurable.class.isAssignableFrom(clazz)) {
((Configurable) obj).configure(config.originals());
}
return (AwsCredentialsProvider) obj;
} catch (final ClassNotFoundException
| NoSuchMethodException
| InvocationTargetException
| InstantiationException
| IllegalArgumentException
| IllegalAccessException e) {
throw new RuntimeException(e);
}
}
if (config.roleArn.trim().isBlank()) {
log.info("Using aws default credentials provider");
return getDefaultCredentialsProvider(config);
}
log.info(
"Using aws sts credentials provider with roleArn={} sessionName={} externalID={} "
+ "stsRefreshDuration={}",
config.roleArn,
config.connectorId,
config.externalId,
stsRefreshDuration);
return getStsAssumeRoleCredentialsProvider(config);
}