From: Yehuda Sadeh Date: Tue, 16 Dec 2014 17:11:20 +0000 (-0800) Subject: rgw: return SignatureDoesNotMatch instead of AccessDenied X-Git-Tag: v0.92~74^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ef75d720f289ce2e18c0047380a16b7688864560;p=ceph.git rgw: return SignatureDoesNotMatch instead of AccessDenied Fixes: #10329 Signed-off-by: Yehuda Sadeh --- diff --git a/src/rgw/rgw_common.h b/src/rgw/rgw_common.h index 9574981a0066..2020191e1669 100644 --- a/src/rgw/rgw_common.h +++ b/src/rgw/rgw_common.h @@ -135,6 +135,7 @@ using ceph::crypto::MD5; #define ERR_PERMANENT_REDIRECT 2024 #define ERR_LOCKED 2025 #define ERR_QUOTA_EXCEEDED 2026 +#define ERR_SIGNATURE_NO_MATCH 2027 #define ERR_USER_SUSPENDED 2100 #define ERR_INTERNAL_ERROR 2200 diff --git a/src/rgw/rgw_http_errors.h b/src/rgw/rgw_http_errors.h index 9261df476ab8..dc66956a51f5 100644 --- a/src/rgw/rgw_http_errors.h +++ b/src/rgw/rgw_http_errors.h @@ -37,6 +37,7 @@ const static struct rgw_http_errors RGW_HTTP_ERRORS[] = { { ERR_LENGTH_REQUIRED, 411, "MissingContentLength" }, { EACCES, 403, "AccessDenied" }, { EPERM, 403, "AccessDenied" }, + { ERR_SIGNATURE_NO_MATCH, 403, "SignatureDoesNotMatch" }, { ERR_USER_SUSPENDED, 403, "UserSuspended" }, { ERR_REQUEST_TIME_SKEWED, 403, "RequestTimeTooSkewed" }, { ERR_QUOTA_EXCEEDED, 403, "QuotaExceeded" }, diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index c2efccb43838..04c5722f1afe 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -2224,8 +2224,9 @@ int RGW_Auth_S3::authorize(RGWRados *store, struct req_state *s) dout(15) << "auth_sign=" << auth_sign << dendl; dout(15) << "compare=" << auth_sign.compare(digest) << dendl; - if (auth_sign != digest) - return -EPERM; + if (auth_sign != digest) { + return -ERR_SIGNATURE_NO_MATCH; + } if (s->user.system) { s->system_request = true;