signer_test.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package auth
  2. import (
  3. "testing"
  4. "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
  5. "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers"
  6. "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
  7. "github.com/stretchr/testify/assert"
  8. )
  9. func TestSigner_AccessKeySigner(t *testing.T) {
  10. c := credentials.NewAccessKeyCredential("accessKeyId", "accessKeySecret")
  11. signer, err := NewSignerWithCredential(c, nil)
  12. assert.Nil(t, err)
  13. _, ok := signer.(*signers.AccessKeySigner)
  14. assert.True(t, ok)
  15. }
  16. func TestSigner_BaseSigner(t *testing.T) {
  17. c := credentials.NewBaseCredential("accessKeyId", "accessKeySecret")
  18. signer, err := NewSignerWithCredential(c, nil)
  19. assert.Nil(t, err)
  20. _, ok := signer.(*signers.AccessKeySigner)
  21. assert.True(t, ok)
  22. }
  23. func TestSigner_StsRoleArnSigner(t *testing.T) {
  24. c := credentials.NewStsRoleArnCredential("accessKeyId", "accessKeySecret", "roleArn", "roleSessionName", 3600)
  25. signer, err := NewSignerWithCredential(c, nil)
  26. assert.Nil(t, err)
  27. _, ok := signer.(*signers.RamRoleArnSigner)
  28. assert.True(t, ok)
  29. }
  30. func TestSigner_StsRoleNameOnEcsSigner(t *testing.T) {
  31. c := credentials.NewStsRoleNameOnEcsCredential("roleName")
  32. signer, err := NewSignerWithCredential(c, nil)
  33. assert.Nil(t, err)
  34. _, ok := signer.(*signers.EcsRamRoleSigner)
  35. assert.True(t, ok)
  36. }
  37. func TestSigner_StsTokenSigner(t *testing.T) {
  38. c := credentials.NewStsTokenCredential("accessKeyId", "accessKeySecret", "token")
  39. signer, err := NewSignerWithCredential(c, nil)
  40. assert.Nil(t, err)
  41. _, ok := signer.(*signers.StsTokenSigner)
  42. assert.True(t, ok)
  43. }
  44. func TestSigner_RamRoleArnSigner(t *testing.T) {
  45. c := credentials.NewRamRoleArnCredential("accessKeyId", "accessKeySecret", "roleArn", "roleSessionName", 3600)
  46. signer, err := NewSignerWithCredential(c, nil)
  47. assert.Nil(t, err)
  48. _, ok := signer.(*signers.RamRoleArnSigner)
  49. assert.True(t, ok)
  50. }
  51. func TestSigner_NewSignerKeyPair(t *testing.T) {
  52. c := credentials.NewRsaKeyPairCredential("publicKeyId", "privateKeyId", 3600)
  53. signer, err := NewSignerWithCredential(c, nil)
  54. assert.Nil(t, err)
  55. _, ok := signer.(*signers.SignerKeyPair)
  56. assert.True(t, ok)
  57. }
  58. func TestSigner_EcsRamRoleSigner(t *testing.T) {
  59. c := credentials.NewEcsRamRoleCredential("roleName")
  60. signer, err := NewSignerWithCredential(c, nil)
  61. assert.Nil(t, err)
  62. _, ok := signer.(*signers.EcsRamRoleSigner)
  63. assert.True(t, ok)
  64. }
  65. type OtherCredential struct {
  66. }
  67. func TestSigner_OtherSigner(t *testing.T) {
  68. c := &OtherCredential{}
  69. _, err := NewSignerWithCredential(c, nil)
  70. assert.NotNil(t, err)
  71. assert.Equal(t, "[SDK.UnsupportedCredential] Specified credential (type = *auth.OtherCredential) is not supported, please check", err.Error())
  72. }
  73. func Test_Sign_ROA(t *testing.T) {
  74. request := requests.NewCommonRequest()
  75. request.PathPattern = "/users/:user"
  76. request.TransToAcsRequest()
  77. c := credentials.NewAccessKeyCredential("accessKeyId", "accessKeySecret")
  78. signer := signers.NewAccessKeySigner(c)
  79. err := Sign(request, signer, "regionId")
  80. assert.Nil(t, err)
  81. }
  82. func Test_Sign_RPC(t *testing.T) {
  83. request := requests.NewCommonRequest()
  84. request.TransToAcsRequest()
  85. c := credentials.NewAccessKeyCredential("accessKeyId", "accessKeySecret")
  86. signer := signers.NewAccessKeySigner(c)
  87. err := Sign(request, signer, "regionId")
  88. assert.Nil(t, err)
  89. }