Browse Source

fix(s3api): simply comparing signatures

pull/7488/head
没有小名的曲 3 weeks ago
parent
commit
6719b6e7ac
  1. 10
      weed/s3api/auth_signature_v2.go

10
weed/s3api/auth_signature_v2.go

@ -117,7 +117,15 @@ func (iam *IdentityAccessManagement) doesSignV2Match(r *http.Request) (*Identity
} }
expectedAuth := signatureV2(cred, r.Method, r.URL.Path, r.URL.Query().Encode(), r.Header) expectedAuth := signatureV2(cred, r.Method, r.URL.Path, r.URL.Query().Encode(), r.Header)
if v2Auth != expectedAuth {
v2Signature := ""
expectedV2Signature := ""
if idx := strings.LastIndex(v2Auth, ":"); idx != -1 {
v2Signature = v2Auth[idx+1:]
}
if idx := strings.LastIndex(expectedAuth, ":"); idx != -1 {
expectedV2Signature = expectedAuth[idx+1:]
}
if !compareSignatureV2(v2Signature, expectedV2Signature) {
return nil, s3err.ErrSignatureDoesNotMatch return nil, s3err.ErrSignatureDoesNotMatch
} }
return identity, s3err.ErrNone return identity, s3err.ErrNone

Loading…
Cancel
Save