示例#1
0
文件: signature.go 项目: alexex/minio
// Verify if request has valid AWS Signature Version '4'.
func isSignV4ReqAuthenticated(sign *signV4.Signature, r *http.Request) bool {
	auth := sign.SetHTTPRequestToVerify(r)
	if isRequestSignatureV4(r) {
		dummyPayload := sha256.Sum256([]byte(""))
		ok, err := auth.DoesSignatureMatch(hex.EncodeToString(dummyPayload[:]))
		if err != nil {
			errorIf(err.Trace(), "Signature verification failed.", nil)
			return false
		}
		return ok
	} else if isRequestPresignedSignatureV4(r) {
		ok, err := auth.DoesPresignedSignatureMatch()
		if err != nil {
			errorIf(err.Trace(), "Presigned signature verification failed.", nil)
			return false
		}
		return ok
	}
	return false
}