Skip to content

Commit f6d1986

Browse files
committed
feat: support StsToken mode in cli profile
1 parent 410338b commit f6d1986

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

src/Providers/CLIProfileCredentialsProvider.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,12 @@ protected function reloadCredentialsProvider($profileFile, $profileName)
8787
'accessKeyId' => Helper::unsetReturnNull($profile, 'access_key_id'),
8888
'accessKeySecret' => Helper::unsetReturnNull($profile, 'access_key_secret'),
8989
]);
90+
case 'StsToken':
91+
return new StaticSTSCredentialsProvider([
92+
'accessKeyId' => Helper::unsetReturnNull($profile, 'access_key_id'),
93+
'accessKeySecret' => Helper::unsetReturnNull($profile, 'access_key_secret'),
94+
'securityToken' => Helper::unsetReturnNull($profile, 'sts_token'),
95+
]);
9096
case 'RamRoleArn':
9197
$innerProvider = new StaticAKCredentialsProvider([
9298
'accessKeyId' => Helper::unsetReturnNull($profile, 'access_key_id'),

tests/Unit/Ini/VirtualCLIConfig.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,13 @@ public static function full()
136136
"access_key_id": "access_key_id",
137137
"access_key_secret": "access_key_secret"
138138
},
139+
{
140+
"name": "StsToken",
141+
"mode": "StsToken",
142+
"access_key_id": "access_key_id",
143+
"access_key_secret": "access_key_secret",
144+
"sts_token": "sts_token"
145+
},
139146
{
140147
"name": "RamRoleArn",
141148
"mode": "RamRoleArn",

tests/Unit/Providers/CLIProfileCredentialsProviderTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,18 @@ public function testAK()
147147
self::assertEquals('static_ak', $credentials->getProviderName());
148148
}
149149

150+
public function testSTS()
151+
{
152+
$vf = VirtualCLIConfig::full();
153+
$provider = new CLIProfileCredentialsProvider();
154+
$credentialsProvider = $this->invokeProtectedFunc($provider, 'reloadCredentialsProvider', $vf, 'StsToken');
155+
$credentials = $credentialsProvider->getCredentials();
156+
self::assertEquals('access_key_id', $credentials->getAccessKeyId());
157+
self::assertEquals('access_key_secret', $credentials->getAccessKeySecret());
158+
self::assertEquals('sts_token', $credentials->getSecurityToken());
159+
self::assertEquals('static_sts', $credentials->getProviderName());
160+
}
161+
150162
public function testRamRoleArn()
151163
{
152164
$vf = VirtualCLIConfig::full();

0 commit comments

Comments
 (0)