From ecd00680a0307df2df3e937b5f41a3d64a164772 Mon Sep 17 00:00:00 2001 From: mozillazg Date: Thu, 31 Aug 2023 13:53:59 +0800 Subject: [PATCH] provider: add STSTokenProvider --- pkg/credentials/provider/ststoken_provider.go | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 pkg/credentials/provider/ststoken_provider.go diff --git a/pkg/credentials/provider/ststoken_provider.go b/pkg/credentials/provider/ststoken_provider.go new file mode 100644 index 00000000..7eb3eebe --- /dev/null +++ b/pkg/credentials/provider/ststoken_provider.go @@ -0,0 +1,29 @@ +package provider + +import ( + "context" + "errors" +) + +type STSTokenProvider struct { + cred *Credentials +} + +func NewSTSTokenProvider(accessKeyId, accessKeySecret, securityToken string) *STSTokenProvider { + return &STSTokenProvider{ + cred: &Credentials{ + AccessKeyId: accessKeyId, + AccessKeySecret: accessKeySecret, + SecurityToken: securityToken, + }, + } +} + +func (a *STSTokenProvider) Credentials(ctx context.Context) (*Credentials, error) { + if a.cred.AccessKeyId == "" || a.cred.AccessKeySecret == "" || a.cred.SecurityToken == "" { + return nil, NewNotEnableError( + errors.New("AccessKeyId, AccessKeySecret or SecurityToken is empty")) + } + + return a.cred, nil +}