12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package smithy
- import (
- "context"
- "fmt"
- "time"
- "github.com/aws/aws-sdk-go-v2/aws"
- "github.com/aws/smithy-go"
- "github.com/aws/smithy-go/auth"
- )
- // CredentialsAdapter adapts aws.Credentials to auth.Identity.
- type CredentialsAdapter struct {
- Credentials aws.Credentials
- }
- var _ auth.Identity = (*CredentialsAdapter)(nil)
- // Expiration returns the time of expiration for the credentials.
- func (v *CredentialsAdapter) Expiration() time.Time {
- return v.Credentials.Expires
- }
- // CredentialsProviderAdapter adapts aws.CredentialsProvider to auth.IdentityResolver.
- type CredentialsProviderAdapter struct {
- Provider aws.CredentialsProvider
- }
- var _ (auth.IdentityResolver) = (*CredentialsProviderAdapter)(nil)
- // GetIdentity retrieves AWS credentials using the underlying provider.
- func (v *CredentialsProviderAdapter) GetIdentity(ctx context.Context, _ smithy.Properties) (
- auth.Identity, error,
- ) {
- if v.Provider == nil {
- return &CredentialsAdapter{Credentials: aws.Credentials{}}, nil
- }
- creds, err := v.Provider.Retrieve(ctx)
- if err != nil {
- return nil, fmt.Errorf("get credentials: %w", err)
- }
- return &CredentialsAdapter{Credentials: creds}, nil
- }
|