Skip to content

Commit 79a29c3

Browse files
authored
chore(sts): add support for regionalizing sts client (#2493)
* feat(sts): add support for regionalizing sts client
1 parent 179c830 commit 79a29c3

File tree

2 files changed

+94
-19
lines changed

2 files changed

+94
-19
lines changed

aws-android-sdk-core/src/main/java/com/amazonaws/regions/RegionDefaults.java

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public static List<Region> getRegions() {
3838
updateRegion(region, "s3", "s3.af-south-1.amazonaws.com", false, true);
3939
updateRegion(region, "sns", "sns.af-south-1.amazonaws.com", false, true);
4040
updateRegion(region, "sqs", "sqs.af-south-1.amazonaws.com", false, true);
41+
updateRegion(region, "sts", "sts.af-south-1.amazonaws.com", false, true);
4142

4243
region = new Region("ap-northeast-1", "amazonaws.com");
4344
ret.add(region);
@@ -63,7 +64,7 @@ public static List<Region> getRegions() {
6364
updateRegion(region, "sdb", "sdb.ap-northeast-1.amazonaws.com", false, true);
6465
updateRegion(region, "sns", "sns.ap-northeast-1.amazonaws.com", false, true);
6566
updateRegion(region, "sqs", "sqs.ap-northeast-1.amazonaws.com", false, true);
66-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
67+
updateRegion(region, "sts", "sts.ap-northeast-1.amazonaws.com", false, true);
6768

6869
region = new Region("ap-northeast-2", "amazonaws.com");
6970
ret.add(region);
@@ -108,7 +109,7 @@ public static List<Region> getRegions() {
108109
updateRegion(region, "s3", "s3.ap-south-1.amazonaws.com", false, true);
109110
updateRegion(region, "sns", "sns.ap-south-1.amazonaws.com", false, true);
110111
updateRegion(region, "sqs", "sqs.ap-south-1.amazonaws.com", false, true);
111-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
112+
updateRegion(region, "sts", "sts.ap-south-1.amazonaws.com", false, true);
112113

113114
region = new Region("ap-southeast-1", "amazonaws.com");
114115
ret.add(region);
@@ -133,7 +134,7 @@ public static List<Region> getRegions() {
133134
updateRegion(region, "sdb", "sdb.ap-southeast-1.amazonaws.com", false, true);
134135
updateRegion(region, "sns", "sns.ap-southeast-1.amazonaws.com", false, true);
135136
updateRegion(region, "sqs", "sqs.ap-southeast-1.amazonaws.com", false, true);
136-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
137+
updateRegion(region, "sts", "sts.ap-southeast-1.amazonaws.com", false, true);
137138

138139
region = new Region("ap-southeast-2", "amazonaws.com");
139140
ret.add(region);
@@ -158,7 +159,7 @@ public static List<Region> getRegions() {
158159
updateRegion(region, "sdb", "sdb.ap-southeast-2.amazonaws.com", false, true);
159160
updateRegion(region, "sns", "sns.ap-southeast-2.amazonaws.com", false, true);
160161
updateRegion(region, "sqs", "sqs.ap-southeast-2.amazonaws.com", false, true);
161-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
162+
updateRegion(region, "sts", "sts.ap-southeast-2.amazonaws.com", false, true);
162163

163164
region = new Region("ca-central-1", "amazonaws.com");
164165
ret.add(region);
@@ -175,7 +176,7 @@ public static List<Region> getRegions() {
175176
updateRegion(region, "s3", "s3.ca-central-1.amazonaws.com", false, true);
176177
updateRegion(region, "sns", "sns.ca-central-1.amazonaws.com", false, true);
177178
updateRegion(region, "sqs", "sqs.ca-central-1.amazonaws.com", false, true);
178-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
179+
updateRegion(region, "sts", "sts.ca-central-1.amazonaws.com", false, true);
179180

180181
region = new Region("eu-central-1", "amazonaws.com");
181182
ret.add(region);
@@ -199,7 +200,7 @@ public static List<Region> getRegions() {
199200
updateRegion(region, "s3", "s3.eu-central-1.amazonaws.com", false, true);
200201
updateRegion(region, "sns", "sns.eu-central-1.amazonaws.com", false, true);
201202
updateRegion(region, "sqs", "sqs.eu-central-1.amazonaws.com", false, true);
202-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
203+
updateRegion(region, "sts", "sts.eu-central-1.amazonaws.com", false, true);
203204

204205
region = new Region("eu-south-1", "amazonaws.com");
205206
ret.add(region);
@@ -213,6 +214,7 @@ public static List<Region> getRegions() {
213214
updateRegion(region, "s3", "s3.eu-south-1.amazonaws.com", false, true);
214215
updateRegion(region, "sns", "sns.eu-south-1.amazonaws.com", false, true);
215216
updateRegion(region, "sqs", "sqs.eu-south-1.amazonaws.com", false, true);
217+
updateRegion(region, "sts", "sts.eu-south-1.amazonaws.com", false, true);
216218

217219
region = new Region("eu-west-1", "amazonaws.com");
218220
ret.add(region);
@@ -241,7 +243,7 @@ public static List<Region> getRegions() {
241243
updateRegion(region, "sdb", "sdb.eu-west-1.amazonaws.com", false, true);
242244
updateRegion(region, "sns", "sns.eu-west-1.amazonaws.com", false, true);
243245
updateRegion(region, "sqs", "sqs.eu-west-1.amazonaws.com", false, true);
244-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
246+
updateRegion(region, "sts", "sts.eu-west-1.amazonaws.com", false, true);
245247

246248
region = new Region("eu-west-2", "amazonaws.com");
247249
ret.add(region);
@@ -263,7 +265,7 @@ public static List<Region> getRegions() {
263265
updateRegion(region, "s3", "s3.eu-west-2.amazonaws.com", false, true);
264266
updateRegion(region, "sns", "sns.eu-west-2.amazonaws.com", false, true);
265267
updateRegion(region, "sqs", "sqs.eu-west-2.amazonaws.com", false, true);
266-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
268+
updateRegion(region, "sts", "sts.eu-west-2.amazonaws.com", false, true);
267269

268270
region = new Region("eu-west-3", "amazonaws.com");
269271
ret.add(region);
@@ -280,7 +282,7 @@ public static List<Region> getRegions() {
280282
updateRegion(region, "s3", "s3.eu-west-3.amazonaws.com", false, true);
281283
updateRegion(region, "sns", "sns.eu-west-3.amazonaws.com", false, true);
282284
updateRegion(region, "sqs", "sqs.eu-west-3.amazonaws.com", false, true);
283-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
285+
updateRegion(region, "sts", "sts.eu-west-3.amazonaws.com", false, true);
284286

285287
region = new Region("sa-east-1", "amazonaws.com");
286288
ret.add(region);
@@ -298,7 +300,7 @@ public static List<Region> getRegions() {
298300
updateRegion(region, "sdb", "sdb.sa-east-1.amazonaws.com", false, true);
299301
updateRegion(region, "sns", "sns.sa-east-1.amazonaws.com", false, true);
300302
updateRegion(region, "sqs", "sqs.sa-east-1.amazonaws.com", false, true);
301-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
303+
updateRegion(region, "sts", "sts.sa-east-1.amazonaws.com", false, true);
302304

303305
region = new Region("us-east-1", "amazonaws.com");
304306
ret.add(region);
@@ -330,7 +332,7 @@ public static List<Region> getRegions() {
330332
updateRegion(region, "sdb", "sdb.amazonaws.com", false, true);
331333
updateRegion(region, "sns", "sns.us-east-1.amazonaws.com", false, true);
332334
updateRegion(region, "sqs", "sqs.us-east-1.amazonaws.com", false, true);
333-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
335+
updateRegion(region, "sts", "sts.us-east-1.amazonaws.com", false, true);
334336

335337
region = new Region("us-east-2", "amazonaws.com");
336338
ret.add(region);
@@ -353,7 +355,7 @@ public static List<Region> getRegions() {
353355
updateRegion(region, "s3", "s3.us-east-2.amazonaws.com", false, true);
354356
updateRegion(region, "sns", "sns.us-east-2.amazonaws.com", false, true);
355357
updateRegion(region, "sqs", "sqs.us-east-2.amazonaws.com", false, true);
356-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
358+
updateRegion(region, "sts", "sts.us-east-2.amazonaws.com", false, true);
357359

358360
region = new Region("us-west-1", "amazonaws.com");
359361
ret.add(region);
@@ -371,7 +373,7 @@ public static List<Region> getRegions() {
371373
updateRegion(region, "sdb", "sdb.us-west-1.amazonaws.com", false, true);
372374
updateRegion(region, "sns", "sns.us-west-1.amazonaws.com", false, true);
373375
updateRegion(region, "sqs", "sqs.us-west-1.amazonaws.com", false, true);
374-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
376+
updateRegion(region, "sts", "sts.us-west-1.amazonaws.com", false, true);
375377

376378
region = new Region("us-west-2", "amazonaws.com");
377379
ret.add(region);
@@ -398,7 +400,7 @@ public static List<Region> getRegions() {
398400
updateRegion(region, "sdb", "sdb.us-west-2.amazonaws.com", false, true);
399401
updateRegion(region, "sns", "sns.us-west-2.amazonaws.com", false, true);
400402
updateRegion(region, "sqs", "sqs.us-west-2.amazonaws.com", false, true);
401-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
403+
updateRegion(region, "sts", "sts.us-west-2.amazonaws.com", false, true);
402404

403405
region = new Region("cn-north-1", "amazonaws.com.cn");
404406
ret.add(region);
@@ -431,7 +433,7 @@ public static List<Region> getRegions() {
431433
updateRegion(region, "s3", "s3.cn-northwest-1.amazonaws.com.cn", false, true);
432434
updateRegion(region, "sns", "sns.cn-northwest-1.amazonaws.com.cn", false, true);
433435
updateRegion(region, "sqs", "sqs.cn-northwest-1.amazonaws.com.cn", false, true);
434-
updateRegion(region, "sts", "sts.amazonaws.com.cn", false, true);
436+
updateRegion(region, "sts", "sts.cn-northwest-1.amazonaws.com.cn", false, true);
435437

436438
region = new Region("us-gov-west-1", "amazonaws.com");
437439
ret.add(region);
@@ -448,7 +450,7 @@ public static List<Region> getRegions() {
448450
updateRegion(region, "s3", "s3.us-gov-west-1.amazonaws.com", false, true);
449451
updateRegion(region, "sns", "sns.us-gov-west-1.amazonaws.com", false, true);
450452
updateRegion(region, "sqs", "sqs.us-gov-west-1.amazonaws.com", false, true);
451-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
453+
updateRegion(region, "sts", "sts.us-gov-west-1.amazonaws.com", false, true);
452454

453455
region = new Region("eu-north-1", "amazonaws.com");
454456
ret.add(region);
@@ -466,7 +468,7 @@ public static List<Region> getRegions() {
466468
updateRegion(region, "s3", "s3.eu-north-1.amazonaws.com", false, true);
467469
updateRegion(region, "sns", "sns.eu-north-1.amazonaws.com", false, true);
468470
updateRegion(region, "sqs", "sqs.eu-north-1.amazonaws.com", false, true);
469-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
471+
updateRegion(region, "sts", "sts.eu-north-1.amazonaws.com", false, true);
470472

471473
region = new Region("ap-east-1", "amazonaws.com");
472474
ret.add(region);
@@ -484,7 +486,7 @@ public static List<Region> getRegions() {
484486
updateRegion(region, "s3", "s3.ap-east-1.amazonaws.com", false, true);
485487
updateRegion(region, "sns", "sns.ap-east-1.amazonaws.com", false, true);
486488
updateRegion(region, "sqs", "sqs.ap-east-1.amazonaws.com", false, true);
487-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
489+
updateRegion(region, "sts", "sts.ap-east-1.amazonaws.com", false, true);
488490

489491
// Support Middle East (Bahrain) `me-south-1` region
490492
region = new Region("me-south-1", "amazonaws.com");
@@ -511,7 +513,7 @@ public static List<Region> getRegions() {
511513
updateRegion(region, "sdb", "sdb.me-south-1.amazonaws.com", false, true);
512514
updateRegion(region, "sns", "sns.me-south-1.amazonaws.com", false, true);
513515
updateRegion(region, "sqs", "sqs.me-south-1.amazonaws.com", false, true);
514-
updateRegion(region, "sts", "sts.amazonaws.com", false, true);
516+
updateRegion(region, "sts", "sts.me-south-1.amazonaws.com", false, true);
515517

516518
return ret;
517519
}
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
/*
2+
* Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://aws.amazon.com/apache2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
16+
package com.amazonaws.services.securitytoken;
17+
18+
import com.amazonaws.auth.AWSCredentials;
19+
import com.amazonaws.auth.AWSCredentialsProvider;
20+
import com.amazonaws.auth.AnonymousAWSCredentials;
21+
import com.amazonaws.internal.StaticCredentialsProvider;
22+
import com.amazonaws.regions.Region;
23+
import com.amazonaws.regions.Regions;
24+
import org.junit.Before;
25+
import org.junit.Test;
26+
27+
import static org.junit.Assert.assertEquals;
28+
29+
/**
30+
* Tests that AWS STS client behaves as configured.
31+
*/
32+
public class AWSSecurityTokenServiceClientTest {
33+
private AWSSecurityTokenServiceClient stsClient;
34+
35+
/**
36+
* Creates a new instance of AWS STS client using mock credentials.
37+
*/
38+
@Before
39+
public void setUpBeforeTest() {
40+
AWSCredentials mockCredentials = new AnonymousAWSCredentials();
41+
AWSCredentialsProvider mockProvider = new StaticCredentialsProvider(mockCredentials);
42+
stsClient = new AWSSecurityTokenServiceClient(mockProvider);
43+
}
44+
45+
/**
46+
* Tests that STS client defaults to legacy global endpoint.
47+
*/
48+
@Test
49+
public void testDefault() {
50+
assertEquals("https://sts.amazonaws.com", stsClient.getEndpoint());
51+
}
52+
53+
/**
54+
* Tests that STS client endpoint is adjusted appropriately upon setting a region.
55+
*/
56+
@Test
57+
public void testRegions() {
58+
stsClient.setRegion(Region.getRegion(Regions.US_EAST_1));
59+
assertEquals("https://sts.us-east-1.amazonaws.com", stsClient.getEndpoint());
60+
61+
stsClient.setRegion(Region.getRegion(Regions.US_WEST_2));
62+
assertEquals("https://sts.us-west-2.amazonaws.com", stsClient.getEndpoint());
63+
64+
stsClient.setRegion(Region.getRegion(Regions.AF_SOUTH_1));
65+
assertEquals("https://sts.af-south-1.amazonaws.com", stsClient.getEndpoint());
66+
67+
stsClient.setRegion(Region.getRegion(Regions.CN_NORTH_1));
68+
assertEquals("https://sts.cn-north-1.amazonaws.com.cn", stsClient.getEndpoint());
69+
70+
stsClient.setRegion(Region.getRegion(Regions.GovCloud));
71+
assertEquals("https://sts.us-gov-west-1.amazonaws.com", stsClient.getEndpoint());
72+
}
73+
}

0 commit comments

Comments
 (0)