Skip to content

Commit aed8d46

Browse files
RickyMaRuirui ma
authored andcommitted
rgw: fix SignatureDoesNotMatch when extra headers
Headers start with 'x-amz' but not 'x-amz-', should not be in the list of CanonicalHeaders. Signed-off-by: rui ma <[email protected]>
1 parent 080bb4f commit aed8d46

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/rgw/rgw_common.cc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -385,13 +385,13 @@ struct str_len {
385385

386386
#define STR_LEN_ENTRY(s) { s, sizeof(s) - 1 }
387387

388-
struct str_len meta_prefixes[] = { STR_LEN_ENTRY("HTTP_X_AMZ"),
389-
STR_LEN_ENTRY("HTTP_X_GOOG"),
390-
STR_LEN_ENTRY("HTTP_X_DHO"),
391-
STR_LEN_ENTRY("HTTP_X_RGW"),
392-
STR_LEN_ENTRY("HTTP_X_OBJECT"),
393-
STR_LEN_ENTRY("HTTP_X_CONTAINER"),
394-
STR_LEN_ENTRY("HTTP_X_ACCOUNT"),
388+
struct str_len meta_prefixes[] = { STR_LEN_ENTRY("HTTP_X_AMZ_"),
389+
STR_LEN_ENTRY("HTTP_X_GOOG_"),
390+
STR_LEN_ENTRY("HTTP_X_DHO_"),
391+
STR_LEN_ENTRY("HTTP_X_RGW_"),
392+
STR_LEN_ENTRY("HTTP_X_OBJECT_"),
393+
STR_LEN_ENTRY("HTTP_X_CONTAINER_"),
394+
STR_LEN_ENTRY("HTTP_X_ACCOUNT_"),
395395
{NULL, 0} };
396396

397397
void req_info::init_meta_info(const DoutPrefixProvider *dpp, bool *found_bad_meta)
@@ -411,7 +411,7 @@ void req_info::init_meta_info(const DoutPrefixProvider *dpp, bool *found_bad_met
411411
const char *name = p+len; /* skip the prefix */
412412
int name_len = header_name.size() - len;
413413

414-
if (found_bad_meta && strncmp(name, "_META_", name_len) == 0)
414+
if (found_bad_meta && strncmp(name, "META_", name_len) == 0)
415415
*found_bad_meta = true;
416416

417417
char name_low[meta_prefixes[0].len + name_len + 1];

0 commit comments

Comments
 (0)