Skip to content

Commit 01693f2

Browse files
committed
feat: support StsToken mode in cli profile
1 parent c58b0de commit 01693f2

File tree

3 files changed

+23
-0
lines changed

3 files changed

+23
-0
lines changed

aliyun-java-sdk-core/src/main/java/com/aliyuncs/auth/CLIProfileCredentialsProvider.java

+9
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ AlibabaCloudCredentialsProvider reloadCredentialsProvider(Config config, String
6666
if ("AK".equals(mode)) {
6767
return new StaticCredentialsProvider(
6868
new BasicCredentials(profile.getAccessKeyId(), profile.getAccessKeySecret()));
69+
} else if ("StsToken".equals(mode)) {
70+
return new StaticCredentialsProvider(
71+
new BasicSessionCredentials(profile.getAccessKeyId(), profile.getAccessKeySecret(), profile.getSecurityToken()));
6972
} else if ("RamRoleArn".equals(mode)) {
7073
AlibabaCloudCredentialsProvider innerProvider = new StaticCredentialsProvider(
7174
new BasicCredentials(profile.getAccessKeyId(), profile.getAccessKeySecret()));
@@ -185,6 +188,8 @@ static class Profile {
185188
private String accessKeyId;
186189
@SerializedName("access_key_secret")
187190
private String accessKeySecret;
191+
@SerializedName("sts_token")
192+
private String securityToken;
188193
@SerializedName("ram_role_arn")
189194
private String roleArn;
190195
@SerializedName("ram_session_name")
@@ -224,6 +229,10 @@ public String getAccessKeySecret() {
224229
return accessKeySecret;
225230
}
226231

232+
public String getSecurityToken() {
233+
return securityToken;
234+
}
235+
227236
public String getRoleArn() {
228237
return roleArn;
229238
}

aliyun-java-sdk-core/src/test/java/com/aliyuncs/auth/CLIProfileCredentialsProviderTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,13 @@ public void reloadCredentialsProviderTest() throws ClientException, IOException
9696
Assert.assertEquals("akid", credential.getAccessKeyId());
9797
Assert.assertEquals("secret", credential.getAccessKeySecret());
9898

99+
credentialsProvider = provider.reloadCredentialsProvider(config, "StsToken");
100+
Assert.assertTrue(credentialsProvider instanceof StaticCredentialsProvider);
101+
BasicSessionCredentials sessionCredentials = (BasicSessionCredentials) credentialsProvider.getCredentials();
102+
Assert.assertEquals("accessKeyId", sessionCredentials.getAccessKeyId());
103+
Assert.assertEquals("accessKeySecret", sessionCredentials.getAccessKeySecret());
104+
Assert.assertEquals("stsToken", sessionCredentials.getSessionToken());
105+
99106
credentialsProvider = provider.reloadCredentialsProvider(config, "RamRoleArn");
100107
Assert.assertTrue(credentialsProvider instanceof STSAssumeRoleSessionCredentialsProvider);
101108
try {

aliyun-java-sdk-core/src/test/resources/.aliyun/config.json

+7
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)