Skip to content

Commit a705153

Browse files
sts: Make STS client anynomous for web identity (#157)
1 parent ff787e8 commit a705153

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

examples/src/main/java/com/salesforce/multicloudj/sts/Main.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package com.salesforce.multicloudj.sts;
22

33
import com.salesforce.multicloudj.blob.client.BucketClient;
4+
import com.salesforce.multicloudj.blob.driver.ListBlobsPageRequest;
5+
import com.salesforce.multicloudj.blob.driver.ListBlobsPageResponse;
46
import com.salesforce.multicloudj.sts.client.StsClient;
57
import com.salesforce.multicloudj.sts.client.StsUtilities;
8+
import com.salesforce.multicloudj.sts.model.AssumeRoleWebIdentityRequest;
69
import com.salesforce.multicloudj.sts.model.AssumedRoleRequest;
710
import com.salesforce.multicloudj.sts.model.CallerIdentity;
811
import com.salesforce.multicloudj.sts.model.CredentialsOverrider;
@@ -44,7 +47,7 @@ public static void assumeRole() {
4447
public static void assumeRoleWebIdentityCredentialsOverrider() {
4548
Supplier<String> tokenSupplier = () -> {
4649
StsClient clientGcp = StsClient.builder("gcp").build();
47-
CallerIdentity identity = clientGcp.getCallerIdentity(GetCallerIdentityRequest.builder().aud("some-aud").build());
50+
CallerIdentity identity = clientGcp.getCallerIdentity(GetCallerIdentityRequest.builder().aud("multicloudj").build());
4851
return identity.getCloudResourceName();
4952
};
5053

@@ -53,18 +56,21 @@ public static void assumeRoleWebIdentityCredentialsOverrider() {
5356
.withWebIdentityTokenSupplier(tokenSupplier)
5457
.build();
5558
BucketClient bucketClient = BucketClient.builder(provider)
56-
.withRegion("us-west-2")
59+
.withRegion("us-west-2").withBucket("chameleon-jclouds")
5760
.withCredentialsOverrider(overrider)
5861
.build();
59-
bucketClient.doesObjectExist("asa", "a");
62+
ListBlobsPageResponse r=bucketClient.listPage(ListBlobsPageRequest.builder().withMaxResults(1).build());
63+
System.out.println("s");
6064
}
6165

6266
private static void getCallerIdentity() {
63-
StsClient client = StsClient.builder(provider).withRegion("us-west-2").build();
67+
StsClient client = StsClient.builder("gcp").withRegion("us-west-2").build();
6468
CallerIdentity identity = client.getCallerIdentity();
65-
69+
StsClient client2 = StsClient.builder("aws").withRegion("us-west-2").build();
70+
StsCredentials credentials = client2.getAssumeRoleWithWebIdentityCredentials(AssumeRoleWebIdentityRequest.builder()
71+
.webIdentityToken(identity.getCloudResourceName()).role("arn:aws:iam::654654370895:role/chameleon-web").build());
6672
System.out.printf("\nAccountId: %s,UserId: %s,ResourceName: %s\n",
67-
identity.getAccountId(), identity.getUserId(), identity.getCloudResourceName());
73+
identity.getAccountId(), identity.getUserId(), identity.getCloudResourceName(), credentials.getAccessKeyId());
6874
}
6975

7076
public static void nativeAuthSignerUtilityWithStsCredentials() {

multicloudj-common-aws/src/main/java/com/salesforce/multicloudj/common/aws/CredentialsProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.salesforce.multicloudj.sts.model.CredentialsOverrider;
44
import com.salesforce.multicloudj.sts.model.StsCredentials;
5+
import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider;
56
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
67
import software.amazon.awssdk.auth.credentials.AwsSessionCredentials;
78
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
@@ -47,7 +48,7 @@ public static AwsCredentialsProvider getCredentialsProvider(CredentialsOverrider
4748
String assumeRole = overrider.getRole();
4849
String sessionName = overrider.getSessionName() != null
4950
? overrider.getSessionName() : "multicloudj-web-identity-" + System.currentTimeMillis();
50-
StsClient stsClient = StsClient.builder().region(region).build();
51+
StsClient stsClient = StsClient.builder().credentialsProvider(AnonymousCredentialsProvider.create()).region(region).build();
5152

5253
if (overrider.getWebIdentityTokenSupplier() == null) {
5354
throw new IllegalArgumentException("webIdentityTokenSupplier must be provided for ASSUME_ROLE_WEB_IDENTITY credentials type");

0 commit comments

Comments
 (0)