Skip to content

Commit 2cb6881

Browse files
tomas-sexenianGonzalo Gallotti Vazquez
authored andcommitted
Add IAM roles login
1 parent 5dbebfe commit 2cb6881

File tree

1 file changed

+23
-13
lines changed

1 file changed

+23
-13
lines changed

gxcloudstorage-awss3-v2/src/main/java/com/genexus/db/driver/ExternalProviderS3V2.java

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ private void initialize() throws Exception {
121121
this.folder = folder;
122122

123123
this.client = buildS3Client(accessKey, secretKey, endpointValue, clientRegion);
124-
this.presigner = buildS3Presinger(accessKey, secretKey, clientRegion);
124+
this.presigner = buildS3Presigner(accessKey, secretKey, clientRegion);
125125
bucketExists();
126126
}
127127
}
@@ -131,21 +131,20 @@ private S3Client buildS3Client(String accessKey, String secretKey, String endpoi
131131

132132
boolean bUseIAM = !getPropertyValue(USE_IAM, "", "").isEmpty() || (accessKey.equals("") && secretKey.equals(""));
133133

134-
S3ClientBuilder builder = bUseIAM ?
135-
S3Client.builder() :
136-
S3Client.builder().credentialsProvider(
137-
StaticCredentialsProvider.create(
138-
AwsBasicCredentials.create(accessKey, secretKey)
139-
)
140-
);
134+
S3ClientBuilder builder = bUseIAM
135+
? S3Client.builder().credentialsProvider(DefaultCredentialsProvider.create())
136+
: S3Client.builder().credentialsProvider(
137+
StaticCredentialsProvider.create(
138+
AwsBasicCredentials.create(accessKey, secretKey)
139+
)
140+
);
141141

142142
if (bUseIAM) {
143143
logger.debug("Using IAM Credentials");
144144
}
145145

146146
if (!endpoint.isEmpty() && !endpoint.contains(".amazonaws.com")) {
147147
pathStyleUrls = true;
148-
149148
s3Client = builder
150149
.endpointOverride(URI.create(endpoint))
151150
.region(Region.of(region))
@@ -181,11 +180,22 @@ private S3Client buildS3Client(String accessKey, String secretKey, String endpoi
181180
return s3Client;
182181
}
183182

184-
private S3Presigner buildS3Presinger(String accessKey, String secretKey, String region) {
185-
return S3Presigner.builder()
183+
private S3Presigner buildS3Presigner(String accessKey, String secretKey, String region) {
184+
boolean bUseIAM = !getPropertyValue(USE_IAM, "", "").isEmpty() || (accessKey.equals("") && secretKey.equals(""));
185+
186+
S3Presigner.Builder builder = S3Presigner.builder()
186187
.region(Region.of(region))
187-
.credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(accessKey, secretKey)))
188-
.build();
188+
.credentialsProvider(
189+
bUseIAM
190+
? DefaultCredentialsProvider.create()
191+
: StaticCredentialsProvider.create(AwsBasicCredentials.create(accessKey, secretKey))
192+
);
193+
194+
if (bUseIAM) {
195+
logger.debug("Using IAM Credentials for presigner");
196+
}
197+
198+
return builder.build();
189199
}
190200

191201
private void bucketExists() {

0 commit comments

Comments
 (0)