in src/main/java/com/awslabs/resultsiterator/implementations/BouncyCastleCertificateCredentialsProvider.java [37:79]
public AwsCredentials resolveCredentials() {
HashMap<String, String> properties = toHashMap(System.getProperties().entrySet().stream());
HashMap<String, String> environment = toHashMap(System.getenv().entrySet().stream());
Option<String> maybeCredentialProviderPropertiesFile = getOptionFromPropertiesOrEnvironment(properties, environment, AWS_CREDENTIAL_PROVIDER_PROPERTIES_FILE);
if (maybeCredentialProviderPropertiesFile.isDefined()) {
Properties propertiesFromFile = new Properties();
File credentialsProviderPropertiesFile = new File(maybeCredentialProviderPropertiesFile.get());
Option<Properties> propertiesOption = Try.of(() -> loadProperties(credentialsProviderPropertiesFile, propertiesFromFile)).get();
if (propertiesOption.isDefined()) {
// Got the values as we expected, use these instead of the original properties
properties = toHashMap(propertiesFromFile.entrySet().stream());
}
}
String credentialProviderUrlString = getFromPropertiesOrEnvironment(properties, environment, AWS_CREDENTIAL_PROVIDER_URL);
String thingNameString = getFromPropertiesOrEnvironment(properties, environment, AWS_THING_NAME);
String roleAliasString = getFromPropertiesOrEnvironment(properties, environment, AWS_ROLE_ALIAS);
String caCertFilenameString = getFromPropertiesOrEnvironment(properties, environment, AWS_CA_CERT_FILENAME);
String clientCertFilenameString = getFromPropertiesOrEnvironment(properties, environment, AWS_CLIENT_CERT_FILENAME);
String clientPrivateKeyFilenameString = getFromPropertiesOrEnvironment(properties, environment, AWS_CLIENT_PRIVATE_KEY_FILENAME);
Option<String> maybeClientPrivateKeyPassword = getOptionFromPropertiesOrEnvironment(properties, environment, AWS_CLIENT_PRIVATE_KEY_PASSWORD);
ImmutableCredentialProviderUrl credentialProviderUrl = ImmutableCredentialProviderUrl.builder().credentialProviderUrl(credentialProviderUrlString).build();
ImmutableThingName thingName = ImmutableThingName.builder().name(thingNameString).build();
ImmutableRoleAlias roleAlias = ImmutableRoleAlias.builder().name(roleAliasString).build();
ImmutableCaCertFilename caCertFilename = ImmutableCaCertFilename.builder().caCertFilename(caCertFilenameString).build();
ImmutableClientCertFilename clientCertFilename = ImmutableClientCertFilename.builder().clientCertFilename(clientCertFilenameString).build();
ImmutableClientPrivateKeyFilename clientPrivateKeyFilename = ImmutableClientPrivateKeyFilename.builder().clientPrivateKeyFilename(clientPrivateKeyFilenameString).build();
ImmutablePassword.Builder passwordBuilder = ImmutablePassword.builder();
maybeClientPrivateKeyPassword
.map(String::toCharArray)
.map(passwordBuilder::password);
ImmutablePassword password = passwordBuilder.build();
return resolveCredentials(credentialProviderUrl, thingName, roleAlias, caCertFilename, clientCertFilename, clientPrivateKeyFilename, password);
}