Skip to content

Commit be1505e

Browse files
committed
Fix #1418 Expose AwsCredentialsProvider to AmazonS3InstallationService
1 parent 9f72343 commit be1505e

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

bolt/src/main/java/com/slack/api/bolt/service/builtin/AmazonS3InstallationService.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,19 @@ public class AmazonS3InstallationService implements InstallationService {
3030
private boolean historicalDataEnabled;
3131

3232
public AmazonS3InstallationService(String bucketName) {
33+
this(bucketName, null);
34+
}
35+
36+
public AmazonS3InstallationService(String bucketName, AwsCredentialsProvider credentialsProvider) {
3337
this.bucketName = bucketName;
38+
this.credentialsProvider = credentialsProvider;
3439
}
3540

3641
@Override
3742
public Initializer initializer() {
3843
return (app) -> {
3944
// The first access to S3 tends to be slow on AWS Lambda.
40-
this.credentialsProvider = DefaultCredentialsProvider.create();
41-
AwsCredentials credentials = createCredentials(credentialsProvider);
45+
AwsCredentials credentials = createCredentials(getAwsCredentialsProvider());
4246
if (credentials == null || credentials.accessKeyId() == null) {
4347
throw new IllegalStateException("AWS credentials not found");
4448
}
@@ -299,6 +303,13 @@ private Installer toInstaller(ResponseBytes<GetObjectResponse> s3Object) throws
299303
return JsonOps.fromJson(json, DefaultInstaller.class);
300304
}
301305

306+
protected AwsCredentialsProvider getAwsCredentialsProvider() {
307+
if (this.credentialsProvider == null) {
308+
this.credentialsProvider = DefaultCredentialsProvider.create();
309+
}
310+
return this.credentialsProvider;
311+
}
312+
302313
protected AwsCredentials createCredentials(AwsCredentialsProvider provider) {
303314
return provider.resolveCredentials();
304315
}

bolt/src/main/java/com/slack/api/bolt/service/builtin/AmazonS3OAuthStateService.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,19 @@ public class AmazonS3OAuthStateService implements OAuthStateService {
2626
private AwsCredentialsProvider credentialsProvider;
2727

2828
public AmazonS3OAuthStateService(String bucketName) {
29+
this(bucketName, null);
30+
}
31+
32+
public AmazonS3OAuthStateService(String bucketName, AwsCredentialsProvider credentialsProvider) {
2933
this.bucketName = bucketName;
34+
this.credentialsProvider = credentialsProvider;
3035
}
3136

3237
@Override
3338
public Initializer initializer() {
3439
return (app) -> {
3540
// The first access to S3 tends to be slow on AWS Lambda.
36-
this.credentialsProvider = DefaultCredentialsProvider.create();
37-
AwsCredentials credentials = createCredentials(credentialsProvider);
41+
AwsCredentials credentials = createCredentials(getAwsCredentialsProvider());
3842
if (credentials == null || credentials.accessKeyId() == null) {
3943
throw new IllegalStateException("AWS credentials not found");
4044
}
@@ -98,6 +102,13 @@ public void deleteStateFromDatastore(String state) throws Exception {
98102
}
99103
}
100104

105+
protected AwsCredentialsProvider getAwsCredentialsProvider() {
106+
if (this.credentialsProvider == null) {
107+
this.credentialsProvider = DefaultCredentialsProvider.create();
108+
}
109+
return this.credentialsProvider;
110+
}
111+
101112
protected AwsCredentials createCredentials(AwsCredentialsProvider provider) {
102113
return provider.resolveCredentials();
103114
}

0 commit comments

Comments
 (0)