public CredentialModel getCredentials()

in src/main/java/com/aliyun/credentials/provider/DefaultCredentialsProvider.java [54:99]


    public CredentialModel getCredentials() {
        if (this.reuseLastProviderEnabled && this.lastUsedCredentialsProvider != null) {
            return this.lastUsedCredentialsProvider.getCredentials();
        }
        CredentialModel credential;
        List<String> errorMessages = new ArrayList<>();
        if (USER_CONFIGURATION_PROVIDERS.size() > 0) {
            for (AlibabaCloudCredentialsProvider provider : USER_CONFIGURATION_PROVIDERS) {
                try {
                    credential = provider.getCredentials();
                    if (credential != null) {
                        this.lastUsedCredentialsProvider = provider;
                        return CredentialModel.builder()
                                .accessKeyId(credential.getAccessKeyId())
                                .accessKeySecret(credential.getAccessKeySecret())
                                .securityToken(credential.getSecurityToken())
                                .expiration(credential.getExpiration())
                                .type(credential.getType())
                                .providerName(String.format("%s/%s", this.getProviderName(), credential.getProviderName()))
                                .build();
                    }
                } catch (Exception e) {
                    errorMessages.add(provider.getClass().getName() + ": " + e.getMessage());
                }
            }
        }
        for (AlibabaCloudCredentialsProvider provider : defaultProviders) {
            try {
                credential = provider.getCredentials();
                if (credential != null) {
                    this.lastUsedCredentialsProvider = provider;
                    return CredentialModel.builder()
                            .accessKeyId(credential.getAccessKeyId())
                            .accessKeySecret(credential.getAccessKeySecret())
                            .securityToken(credential.getSecurityToken())
                            .expiration(credential.getExpiration())
                            .type(credential.getType())
                            .providerName(String.format("%s/%s", this.getProviderName(), credential.getProviderName()))
                            .build();
                }
            } catch (Exception e) {
                errorMessages.add(provider.getClass().getSimpleName() + ": " + e.getMessage());
            }
        }
        throw new CredentialException("Unable to load credentials from any of the providers in the chain: " + errorMessages);
    }