public function getCredentials()

in src/Providers/DefaultCredentialsProvider.php [131:166]


    public function getCredentials()
    {
        if ($this->reuseLastProviderEnabled && !is_null($this->lastUsedCredentialsProvider)) {
            $credentials = $this->lastUsedCredentialsProvider->getCredentials();
            return new Credentials([
                'accessKeyId' => $credentials->getAccessKeyId(),
                'accessKeySecret' => $credentials->getAccessKeySecret(),
                'securityToken' => $credentials->getSecurityToken(),
                'providerName' => $this->getProviderName() . '/' . $this->lastUsedCredentialsProvider->getProviderName(),
            ]);
        }

        $providerChain = array_merge(
            self::$customChain,
            self::$defaultProviders
        );

        $exceptionMessages = [];

        foreach ($providerChain as $provider) {
            try {
                $credentials = $provider->getCredentials();
                $this->lastUsedCredentialsProvider = $provider;
                return new Credentials([
                    'accessKeyId' => $credentials->getAccessKeyId(),
                    'accessKeySecret' => $credentials->getAccessKeySecret(),
                    'securityToken' => $credentials->getSecurityToken(),
                    'providerName' => $this->getProviderName() . '/' . $provider->getProviderName(),
                ]);
            } catch (Exception $exception) {
                array_push($exceptionMessages, basename(str_replace('\\', '/', get_class($provider))) . ': ' . $exception->getMessage());
            }
        }
        throw new RuntimeException('Unable to load credentials from any of the providers in the chain: ' . implode(', ', $exceptionMessages));

    }