Skip to content

Commit 2de69a2

Browse files
authored
Merge pull request #2 from aliyun/support_sts_access
support sts access
2 parents b20726f + d914880 commit 2de69a2

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

client.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,15 @@ type aliMNSClient struct {
7575
}
7676

7777
func NewAliMNSClient(inputUrl, accessKeyId, accessKeySecret string) MNSClient {
78+
return NewAliMNSClientWithToken(inputUrl, accessKeyId, accessKeySecret, "")
79+
}
80+
81+
func NewAliMNSClientWithToken(inputUrl, accessKeyId, accessKeySecret, token string) MNSClient {
7882
if inputUrl == "" {
7983
panic("ali-mns: message queue url is empty")
8084
}
8185

82-
credential := NewAliMNSCredential(accessKeySecret)
86+
credential := NewAliMNSCredential(accessKeySecret, token)
8387

8488
cli := new(aliMNSClient)
8589
cli.credential = credential
@@ -194,6 +198,9 @@ func (p *aliMNSClient) Send(method Method, headers map[string]string, message in
194198
headers[CONTENT_MD5] = base64.StdEncoding.EncodeToString([]byte(strMd5))
195199
headers[DATE] = time.Now().UTC().Format(http.TimeFormat)
196200

201+
if p.credential.GetSecurityToken() != "" {
202+
headers[SECURITY_TOKEN] = p.credential.GetSecurityToken()
203+
}
197204
if authHeader, e := p.authorization(method, headers, fmt.Sprintf("/%s", resource)); e != nil {
198205
err = ERR_GENERAL_AUTH_HEADER_FAILED.New(errors.Params{"err": e})
199206
return nil, err

credential.go

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,27 +20,45 @@ const (
2020
HOST = "Host"
2121
DATE = "Date"
2222
KEEP_ALIVE = "Keep-Alive"
23+
SECURITY_TOKEN = "security-token"
2324
)
2425

2526
type Credential interface {
2627
Signature(method Method, headers map[string]string, resource string) (signature string, err error)
2728
SetSecretKey(accessKeySecret string)
29+
SetSecurityToken(securityToken string)
30+
GetSecretKey() (accessKeySecret string)
31+
GetSecurityToken() (securityToken string)
2832
}
2933

3034
type AliMNSCredential struct {
3135
accessKeySecret string
36+
securityToken string
3237
}
3338

34-
func NewAliMNSCredential(accessKeySecret string) *AliMNSCredential {
39+
func NewAliMNSCredential(accessKeySecret, securityToken string) *AliMNSCredential {
3540
aliMNSCredential := new(AliMNSCredential)
3641
aliMNSCredential.accessKeySecret = accessKeySecret
42+
aliMNSCredential.securityToken = securityToken
3743
return aliMNSCredential
3844
}
3945

4046
func (p *AliMNSCredential) SetSecretKey(accessKeySecret string) {
4147
p.accessKeySecret = accessKeySecret
4248
}
4349

50+
func (p *AliMNSCredential) SetSecurityToken(securityToken string) {
51+
p.securityToken = securityToken
52+
}
53+
54+
func (p *AliMNSCredential) GetSecretKey() (accessKeySecret string) {
55+
return p.accessKeySecret
56+
}
57+
58+
func (p* AliMNSCredential) GetSecurityToken() (securityToken string) {
59+
return p.securityToken
60+
}
61+
4462
func (p *AliMNSCredential) Signature(method Method, headers map[string]string, resource string) (signature string, err error) {
4563
signItems := []string{}
4664
signItems = append(signItems, string(method))

0 commit comments

Comments
 (0)