in src/main/java/com/aliyun/credentials/provider/ProfileCredentialsProvider.java [158:182]
private CredentialModel getSTSGetSessionAccessKeyCredentials(Map<String, String> clientConfig,
CredentialsProviderFactory factory) {
String publicKeyId = clientConfig.get(AuthConstant.INI_PUBLIC_KEY_ID);
String privateKeyFile = clientConfig.get(AuthConstant.INI_PRIVATE_KEY_FILE);
if (StringUtils.isEmpty(privateKeyFile)) {
throw new CredentialException("The configured private_key_file is empty.");
}
String privateKey = AuthUtils.getPrivateKey(privateKeyFile);
if (StringUtils.isEmpty(publicKeyId) || StringUtils.isEmpty(privateKey)) {
throw new CredentialException("The configured public_key_id or private_key_file content is empty.");
}
RsaKeyPairCredentialProvider provider = factory.createCredentialsProvider(
RsaKeyPairCredentialProvider.builder()
.publicKeyId(publicKeyId)
.privateKey(privateKey)
.build());
CredentialModel credential = provider.getCredentials();
return CredentialModel.builder()
.accessKeyId(credential.getAccessKeyId())
.accessKeySecret(credential.getAccessKeySecret())
.securityToken(credential.getSecurityToken())
.type(credential.getType())
.providerName(String.format("%s/%s", this.getProviderName(), credential.getProviderName()))
.build();
}