Skip to content

Commit b32e79c

Browse files
committed
feat: support StsToken mode in cli profile
1 parent 14463cd commit b32e79c

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

sdk/auth/credentials/cli_profile_credentials_provider.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ type profile struct {
4949
Mode string `json:"mode"`
5050
AccessKeyID string `json:"access_key_id"`
5151
AccessKeySecret string `json:"access_key_secret"`
52+
SecurityToken string `json:"sts_token"`
5253
RegionID string `json:"region_id"`
5354
RoleArn string `json:"ram_role_arn"`
5455
RoleSessionName string `json:"ram_session_name"`
@@ -115,6 +116,12 @@ func (provider *CLIProfileCredentialsProvider) getCredentialsProvider(conf *conf
115116
WithAccessKeyId(p.AccessKeyID).
116117
WithAccessKeySecret(p.AccessKeySecret).
117118
Build()
119+
case "StsToken":
120+
credentialsProvider, err = NewStaticSTSCredentialsProviderBuilder().
121+
WithAccessKeyId(p.AccessKeyID).
122+
WithAccessKeySecret(p.AccessKeySecret).
123+
WithSecurityToken(p.SecurityToken).
124+
Build()
118125
case "RamRoleArn":
119126
previousProvider, err1 := NewStaticAKCredentialsProviderBuilder().
120127
WithAccessKeyId(p.AccessKeyID).

sdk/auth/credentials/cli_profile_credentials_provider_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@ func TestCLIProfileCredentialsProvider_getCredentialsProvider(t *testing.T) {
7878
AccessKeyID: "akid",
7979
AccessKeySecret: "secret",
8080
},
81+
{
82+
Mode: "StsToken",
83+
Name: "StsToken",
84+
AccessKeyID: "access_key_id",
85+
AccessKeySecret: "access_key_secret",
86+
SecurityToken: "sts_token",
87+
},
8188
{
8289
Mode: "RamRoleArn",
8390
Name: "RamRoleArn",
@@ -138,6 +145,14 @@ func TestCLIProfileCredentialsProvider_getCredentialsProvider(t *testing.T) {
138145
cc, err := akcp.GetCredentials()
139146
assert.Nil(t, err)
140147
assert.Equal(t, cc, &Credentials{AccessKeyId: "akid", AccessKeySecret: "secret", SecurityToken: "", ProviderName: "static_ak"})
148+
// STS
149+
cp, err = provider.getCredentialsProvider(conf, "StsToken")
150+
assert.Nil(t, err)
151+
stscp, ok := cp.(*StaticSTSCredentialsProvider)
152+
assert.True(t, ok)
153+
cc, err = stscp.GetCredentials()
154+
assert.Nil(t, err)
155+
assert.Equal(t, cc, &Credentials{AccessKeyId: "access_key_id", AccessKeySecret: "access_key_secret", SecurityToken: "sts_token", ProviderName: "static_sts"})
141156
// RamRoleArn
142157
cp, err = provider.getCredentialsProvider(conf, "RamRoleArn")
143158
assert.Nil(t, err)

sdk/auth/credentials/fixtures/.aliyun/config.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@
77
"access_key_id": "akid",
88
"access_key_secret": "secret"
99
},
10+
{
11+
"name": "StsToken",
12+
"mode": "StsToken",
13+
"access_key_id": "accessKeyId",
14+
"access_key_secret": "accessKeySecret",
15+
"sts_token": "stsToken"
16+
},
1017
{
1118
"name": "RamRoleArn",
1219
"mode": "RamRoleArn",

0 commit comments

Comments
 (0)