| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package errors
- import (
- "strings"
- "github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils"
- )
- const SignatureDostNotMatchErrorCode = "SignatureDoesNotMatch"
- const IncompleteSignatureErrorCode = "IncompleteSignature"
- const MessageContain = "server string to sign is:"
- var debug utils.Debug
- func init() {
- debug = utils.Init("sdk")
- }
- type SignatureDostNotMatchWrapper struct {
- }
- func (*SignatureDostNotMatchWrapper) tryWrap(error *ServerError, wrapInfo map[string]string) (ok bool) {
- clientStringToSign := wrapInfo["StringToSign"]
- if (error.errorCode == SignatureDostNotMatchErrorCode || error.errorCode == IncompleteSignatureErrorCode) && clientStringToSign != "" {
- message := error.message
- if strings.Contains(message, MessageContain) {
- str := strings.Split(message, MessageContain)
- serverStringToSign := str[1]
- if clientStringToSign == serverStringToSign {
- // user secret is error
- error.recommend = "InvalidAccessKeySecret: Please check you AccessKeySecret"
- } else {
- debug("Client StringToSign: %s", clientStringToSign)
- debug("Server StringToSign: %s", serverStringToSign)
- error.recommend = "This may be a bug with the SDK and we hope you can submit this question in the " +
- "github issue(https://github.com/aliyun/alibaba-cloud-sdk-go/issues), thanks very much"
- }
- }
- ok = true
- return
- }
- ok = false
- return
- }
|