mirror of
https://github.com/minio/minio.git
synced 2025-07-15 11:51:57 -04:00
Merge pull request #1061 from harshavardhana/order-presign
presign: Verify query params for presign individually
This commit is contained in:
commit
52f00042b4
@ -308,12 +308,27 @@ func (r *Signature) DoesPresignedSignatureMatch() (bool, *probe.Error) {
|
|||||||
query.Set("X-Amz-Expires", strconv.Itoa(expireSeconds))
|
query.Set("X-Amz-Expires", strconv.Itoa(expireSeconds))
|
||||||
query.Set("X-Amz-SignedHeaders", r.getSignedHeaders(r.extractSignedHeaders()))
|
query.Set("X-Amz-SignedHeaders", r.getSignedHeaders(r.extractSignedHeaders()))
|
||||||
query.Set("X-Amz-Credential", r.AccessKeyID+"/"+r.getScope(t))
|
query.Set("X-Amz-Credential", r.AccessKeyID+"/"+r.getScope(t))
|
||||||
|
|
||||||
encodedQuery := query.Encode()
|
encodedQuery := query.Encode()
|
||||||
newSignature := r.getSignature(r.getSigningKey(t), r.getStringToSign(r.getPresignedCanonicalRequest(encodedQuery), t))
|
|
||||||
encodedQuery += "&X-Amz-Signature=" + newSignature
|
|
||||||
|
|
||||||
if encodedQuery != r.Request.URL.RawQuery {
|
// Verify if date query is same.
|
||||||
|
if r.Request.URL.Query().Get("X-Amz-Date") != query.Get("X-Amz-Date") {
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
// Verify if expires query is same.
|
||||||
|
if r.Request.URL.Query().Get("X-Amz-Expires") != query.Get("X-Amz-Expires") {
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
// Verify if signed headers query is same.
|
||||||
|
if r.Request.URL.Query().Get("X-Amz-SignedHeaders") != query.Get("X-Amz-SignedHeaders") {
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
// Verify if credential query is same.
|
||||||
|
if r.Request.URL.Query().Get("X-Amz-Credential") != query.Get("X-Amz-Credential") {
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
|
// Verify finally if signature is same.
|
||||||
|
newSignature := r.getSignature(r.getSigningKey(t), r.getStringToSign(r.getPresignedCanonicalRequest(encodedQuery), t))
|
||||||
|
if r.Request.URL.Query().Get("X-Amz-Signature") != newSignature {
|
||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
return true, nil
|
return true, nil
|
||||||
|
Loading…
x
Reference in New Issue
Block a user