Browse Source

Add test cases for signer_sts_token.go

Jackson Tian 7 years ago
parent
commit
1915dd62c2

+ 5 - 6
sdk/auth/signer.go

@@ -39,13 +39,12 @@ func NewSignerWithCredential(credential Credential, commonApi func(request *requ
 	switch instance := credential.(type) {
 	case *credentials.AccessKeyCredential:
 		{
-			signer, err = signers.NewAccessKeySigner(instance)
+			signer = signers.NewAccessKeySigner(instance)
 		}
 	case *credentials.StsTokenCredential:
 		{
-			signer, err = signers.NewStsTokenSigner(instance)
+			signer = signers.NewStsTokenSigner(instance)
 		}
-
 	case *credentials.RamRoleArnCredential:
 		{
 			signer, err = signers.NewRamRoleArnSigner(instance, commonApi)
@@ -56,11 +55,11 @@ func NewSignerWithCredential(credential Credential, commonApi func(request *requ
 		}
 	case *credentials.EcsRamRoleCredential:
 		{
-			signer, err = signers.NewEcsRamRoleSigner(instance, commonApi)
+			signer = signers.NewEcsRamRoleSigner(instance, commonApi)
 		}
 	case *credentials.BaseCredential: // deprecated user interface
 		{
-			signer, err = signers.NewAccessKeySigner(instance.ToAccessKeyCredential())
+			signer = signers.NewAccessKeySigner(instance.ToAccessKeyCredential())
 		}
 	case *credentials.StsRoleArnCredential: // deprecated user interface
 		{
@@ -68,7 +67,7 @@ func NewSignerWithCredential(credential Credential, commonApi func(request *requ
 		}
 	case *credentials.StsRoleNameOnEcsCredential: // deprecated user interface
 		{
-			signer, err = signers.NewEcsRamRoleSigner(instance.ToEcsRamRoleCredential(), commonApi)
+			signer = signers.NewEcsRamRoleSigner(instance.ToEcsRamRoleCredential(), commonApi)
 		}
 	default:
 		message := fmt.Sprintf(errors.UnsupportedCredentialErrorMessage, reflect.TypeOf(credential))

+ 2 - 2
sdk/auth/signers/signer_access_key.go

@@ -26,10 +26,10 @@ func (signer *AccessKeySigner) GetExtraParam() map[string]string {
 	return nil
 }
 
-func NewAccessKeySigner(credential *credentials.AccessKeyCredential) (*AccessKeySigner, error) {
+func NewAccessKeySigner(credential *credentials.AccessKeyCredential) *AccessKeySigner {
 	return &AccessKeySigner{
 		credential: credential,
-	}, nil
+	}
 }
 
 func (*AccessKeySigner) GetName() string {

+ 2 - 2
sdk/auth/signers/signer_ecs_ram_role.go

@@ -34,7 +34,7 @@ type EcsRamRoleSigner struct {
 	commonApi         func(request *requests.CommonRequest, signer interface{}) (response *responses.CommonResponse, err error)
 }
 
-func NewEcsRamRoleSigner(credential *credentials.EcsRamRoleCredential, commonApi func(*requests.CommonRequest, interface{}) (response *responses.CommonResponse, err error)) (signer *EcsRamRoleSigner, err error) {
+func NewEcsRamRoleSigner(credential *credentials.EcsRamRoleCredential, commonApi func(*requests.CommonRequest, interface{}) (response *responses.CommonResponse, err error)) (signer *EcsRamRoleSigner) {
 	signer = &EcsRamRoleSigner{
 		credential: credential,
 		commonApi:  commonApi,
@@ -47,7 +47,7 @@ func NewEcsRamRoleSigner(credential *credentials.EcsRamRoleCredential, commonApi
 		refreshApi:           signer.refreshApi,
 	}
 
-	return
+	return signer
 }
 
 func (*EcsRamRoleSigner) GetName() string {

+ 5 - 4
sdk/auth/signers/signer_ram_role_arn.go

@@ -17,14 +17,15 @@ package signers
 import (
 	"encoding/json"
 	"fmt"
+	"net/http"
+	"strconv"
+	"time"
+
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
 	"github.com/jmespath/go-jmespath"
-	"net/http"
-	"strconv"
-	"time"
 )
 
 const (
@@ -123,7 +124,7 @@ func (signer *RamRoleArnSigner) refreshApi(request *requests.CommonRequest) (res
 		AccessKeyId:     signer.credential.AccessKeyId,
 		AccessKeySecret: signer.credential.AccessKeySecret,
 	}
-	signerV1, err := NewAccessKeySigner(credential)
+	signerV1 := NewAccessKeySigner(credential)
 	return signer.commonApi(request, signerV1)
 }
 

+ 2 - 2
sdk/auth/signers/signer_sts_token.go

@@ -22,10 +22,10 @@ type StsTokenSigner struct {
 	credential *credentials.StsTokenCredential
 }
 
-func NewStsTokenSigner(credential *credentials.StsTokenCredential) (*StsTokenSigner, error) {
+func NewStsTokenSigner(credential *credentials.StsTokenCredential) *StsTokenSigner {
 	return &StsTokenSigner{
 		credential: credential,
-	}, nil
+	}
 }
 
 func (*StsTokenSigner) GetName() string {

+ 28 - 0
sdk/auth/signers/signer_sts_token_test.go

@@ -0,0 +1,28 @@
+package signers
+
+import (
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
+)
+
+func TestSignerSTSToken(t *testing.T) {
+	c := credentials.NewStsTokenCredential("accessKeyId", "accessKeySecret", "token")
+	assert.NotNil(t, c)
+	s := NewStsTokenSigner(c)
+	assert.NotNil(t, s)
+	assert.Equal(t, "HMAC-SHA1", s.GetName())
+	assert.Equal(t, "", s.GetType())
+	assert.Equal(t, "1.0", s.GetVersion())
+	accessKeyId, err := s.GetAccessKeyId()
+	assert.Nil(t, err)
+	assert.Equal(t, "accessKeyId", accessKeyId)
+	params := s.GetExtraParam()
+	assert.Len(t, params, 1)
+	assert.Equal(t, "token", params["SecurityToken"])
+	assert.Equal(t, "Dqy7QZhP4TyQUDa3SBSFXopJaIo=", s.Sign("string to sign", "suffix"))
+	// nothing
+	s.Shutdown()
+}