public static AwsCredentialsProvider getAwsCredentialsProvider()

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);
  }