github.com/aliyun/credentials-go@v1.4.7/credentials/providers/static_sts.go (about) 1 package providers 2 3 import ( 4 "errors" 5 "os" 6 ) 7 8 type StaticSTSCredentialsProvider struct { 9 accessKeyId string 10 accessKeySecret string 11 securityToken string 12 } 13 14 type StaticSTSCredentialsProviderBuilder struct { 15 provider *StaticSTSCredentialsProvider 16 } 17 18 func NewStaticSTSCredentialsProviderBuilder() *StaticSTSCredentialsProviderBuilder { 19 return &StaticSTSCredentialsProviderBuilder{ 20 provider: &StaticSTSCredentialsProvider{}, 21 } 22 } 23 24 func (builder *StaticSTSCredentialsProviderBuilder) WithAccessKeyId(accessKeyId string) *StaticSTSCredentialsProviderBuilder { 25 builder.provider.accessKeyId = accessKeyId 26 return builder 27 } 28 29 func (builder *StaticSTSCredentialsProviderBuilder) WithAccessKeySecret(accessKeySecret string) *StaticSTSCredentialsProviderBuilder { 30 builder.provider.accessKeySecret = accessKeySecret 31 return builder 32 } 33 34 func (builder *StaticSTSCredentialsProviderBuilder) WithSecurityToken(securityToken string) *StaticSTSCredentialsProviderBuilder { 35 builder.provider.securityToken = securityToken 36 return builder 37 } 38 39 func (builder *StaticSTSCredentialsProviderBuilder) Build() (provider *StaticSTSCredentialsProvider, err error) { 40 if builder.provider.accessKeyId == "" { 41 builder.provider.accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") 42 } 43 44 if builder.provider.accessKeyId == "" { 45 err = errors.New("the access key id is empty") 46 return 47 } 48 49 if builder.provider.accessKeySecret == "" { 50 builder.provider.accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") 51 } 52 53 if builder.provider.accessKeySecret == "" { 54 err = errors.New("the access key secret is empty") 55 return 56 } 57 58 if builder.provider.securityToken == "" { 59 builder.provider.securityToken = os.Getenv("ALIBABA_CLOUD_SECURITY_TOKEN") 60 } 61 62 if builder.provider.securityToken == "" { 63 err = errors.New("the security token is empty") 64 return 65 } 66 67 provider = builder.provider 68 return 69 } 70 71 func (provider *StaticSTSCredentialsProvider) GetCredentials() (cc *Credentials, err error) { 72 cc = &Credentials{ 73 AccessKeyId: provider.accessKeyId, 74 AccessKeySecret: provider.accessKeySecret, 75 SecurityToken: provider.securityToken, 76 ProviderName: provider.GetProviderName(), 77 } 78 return 79 } 80 81 func (provider *StaticSTSCredentialsProvider) GetProviderName() string { 82 return "static_sts" 83 }