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