...
1 package smithy
2
3 import (
4 "context"
5 "fmt"
6 "time"
7
8 "github.com/aws/aws-sdk-go-v2/aws"
9 "github.com/aws/smithy-go"
10 "github.com/aws/smithy-go/auth"
11 )
12
13
14 type CredentialsAdapter struct {
15 Credentials aws.Credentials
16 }
17
18 var _ auth.Identity = (*CredentialsAdapter)(nil)
19
20
21 func (v *CredentialsAdapter) Expiration() time.Time {
22 return v.Credentials.Expires
23 }
24
25
26 type CredentialsProviderAdapter struct {
27 Provider aws.CredentialsProvider
28 }
29
30 var _ (auth.IdentityResolver) = (*CredentialsProviderAdapter)(nil)
31
32
33 func (v *CredentialsProviderAdapter) GetIdentity(ctx context.Context, _ smithy.Properties) (
34 auth.Identity, error,
35 ) {
36 if v.Provider == nil {
37 return &CredentialsAdapter{Credentials: aws.Credentials{}}, nil
38 }
39
40 creds, err := v.Provider.Retrieve(ctx)
41 if err != nil {
42 return nil, fmt.Errorf("get credentials: %w", err)
43 }
44
45 return &CredentialsAdapter{Credentials: creds}, nil
46 }
47
View as plain text