diff --git a/src/Providers/CLIProfileCredentialsProvider.php b/src/Providers/CLIProfileCredentialsProvider.php index f627668..1d73396 100644 --- a/src/Providers/CLIProfileCredentialsProvider.php +++ b/src/Providers/CLIProfileCredentialsProvider.php @@ -87,6 +87,12 @@ protected function reloadCredentialsProvider($profileFile, $profileName) 'accessKeyId' => Helper::unsetReturnNull($profile, 'access_key_id'), 'accessKeySecret' => Helper::unsetReturnNull($profile, 'access_key_secret'), ]); + case 'StsToken': + return new StaticSTSCredentialsProvider([ + 'accessKeyId' => Helper::unsetReturnNull($profile, 'access_key_id'), + 'accessKeySecret' => Helper::unsetReturnNull($profile, 'access_key_secret'), + 'securityToken' => Helper::unsetReturnNull($profile, 'sts_token'), + ]); case 'RamRoleArn': $innerProvider = new StaticAKCredentialsProvider([ 'accessKeyId' => Helper::unsetReturnNull($profile, 'access_key_id'), diff --git a/tests/Unit/Ini/VirtualCLIConfig.php b/tests/Unit/Ini/VirtualCLIConfig.php index c86b90e..586a76a 100644 --- a/tests/Unit/Ini/VirtualCLIConfig.php +++ b/tests/Unit/Ini/VirtualCLIConfig.php @@ -136,6 +136,13 @@ public static function full() "access_key_id": "access_key_id", "access_key_secret": "access_key_secret" }, + { + "name": "StsToken", + "mode": "StsToken", + "access_key_id": "access_key_id", + "access_key_secret": "access_key_secret", + "sts_token": "sts_token" + }, { "name": "RamRoleArn", "mode": "RamRoleArn", diff --git a/tests/Unit/Providers/CLIProfileCredentialsProviderTest.php b/tests/Unit/Providers/CLIProfileCredentialsProviderTest.php index 2874114..8b9a9ff 100644 --- a/tests/Unit/Providers/CLIProfileCredentialsProviderTest.php +++ b/tests/Unit/Providers/CLIProfileCredentialsProviderTest.php @@ -147,6 +147,18 @@ public function testAK() self::assertEquals('static_ak', $credentials->getProviderName()); } + public function testSTS() + { + $vf = VirtualCLIConfig::full(); + $provider = new CLIProfileCredentialsProvider(); + $credentialsProvider = $this->invokeProtectedFunc($provider, 'reloadCredentialsProvider', $vf, 'StsToken'); + $credentials = $credentialsProvider->getCredentials(); + self::assertEquals('access_key_id', $credentials->getAccessKeyId()); + self::assertEquals('access_key_secret', $credentials->getAccessKeySecret()); + self::assertEquals('sts_token', $credentials->getSecurityToken()); + self::assertEquals('static_sts', $credentials->getProviderName()); + } + public function testRamRoleArn() { $vf = VirtualCLIConfig::full();