Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

35 linhas
1.1 KiB

  1. package auth
  2. import (
  3. "errors"
  4. "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/auth/credentials"
  5. "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/auth/signers"
  6. "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/requests"
  7. "golib.gaore.com/GaoreGo/gaore-common-sdk-go/sdk/responses"
  8. )
  9. type Signer interface {
  10. GetName() string
  11. GetAccessKeyId() (string, error)
  12. GetAccessKeyFrom() (string, error)
  13. Sign(stringToSign, secretSuffix string) string
  14. }
  15. func NewSignerWithCredential(credential Credential, commonApi func(request *requests.CommonRequest, signer interface{}) (response *responses.CommonResponse, err error)) (signer Signer, err error) {
  16. switch instance := credential.(type) {
  17. case *credentials.AccessKeyCredential:
  18. signer = signers.NewAccessKeySigner(instance)
  19. case *credentials.BaseCredential:
  20. signer = signers.NewAccessKeySigner(instance.ToAccessKeyCredential())
  21. default:
  22. err = errors.New("UnsupportedCredentialErrorCode = SDK.UnsupportedCredential")
  23. }
  24. return
  25. }
  26. func Sign(request requests.AcsRequest, signer Signer) (err error) {
  27. //TODO 根据rpc和roa两种风格签名,自行选择
  28. err = signRpcRequest(request, signer)
  29. return
  30. }