| 1234567891011121314151617181920212223242526272829 |
- package errors
- import "strings"
- const SignatureDostNotMatchErrorCode = "SignatureDoesNotMatch"
- const MessagePrefix = "Specified signature is not matched with our calculation. server string to sign is:"
- type SignatureDostNotMatchWrapper struct {
- }
- func (*SignatureDostNotMatchWrapper) tryWrap(error *ServerError, wrapInfo map[string]string) (bool, *ServerError) {
- clientStringToSign := wrapInfo["StringToSign"]
- if error.errorCode == SignatureDostNotMatchErrorCode && clientStringToSign != "" {
- message := error.message
- if strings.HasPrefix(message, MessagePrefix) {
- serverStringToSign := message[len(MessagePrefix):len(message)]
- if clientStringToSign == serverStringToSign {
- // user secret is error
- error.recommend = "Please check you AccessKeySecret"
- } else {
- 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"
- }
- }
- return true, error
- } else {
- return false, nil
- }
- }
|