bearer_token_signer_adapter.go (921B)
1 package smithy 2 3 import ( 4 "context" 5 "fmt" 6 7 "github.com/aws/smithy-go" 8 "github.com/aws/smithy-go/auth" 9 "github.com/aws/smithy-go/auth/bearer" 10 smithyhttp "github.com/aws/smithy-go/transport/http" 11 ) 12 13 // BearerTokenSignerAdapter adapts smithy bearer.Signer to smithy http 14 // auth.Signer. 15 type BearerTokenSignerAdapter struct { 16 Signer bearer.Signer 17 } 18 19 var _ (smithyhttp.Signer) = (*BearerTokenSignerAdapter)(nil) 20 21 // SignRequest signs the request with the provided bearer token. 22 func (v *BearerTokenSignerAdapter) SignRequest(ctx context.Context, r *smithyhttp.Request, identity auth.Identity, _ smithy.Properties) error { 23 ca, ok := identity.(*BearerTokenAdapter) 24 if !ok { 25 return fmt.Errorf("unexpected identity type: %T", identity) 26 } 27 28 signed, err := v.Signer.SignWithBearerToken(ctx, ca.Token, r) 29 if err != nil { 30 return fmt.Errorf("sign request: %w", err) 31 } 32 33 *r = *signed.(*smithyhttp.Request) 34 return nil 35 }