From dce12afea2cd4126542d876cde96e28f45cd610c Mon Sep 17 00:00:00 2001 From: Pritha Srivastava Date: Tue, 23 Feb 2021 20:49:08 +0530 Subject: [PATCH] rgw/sts: fix for encoding/decoding user namespace in RGWUserInfo, to fetch the user details correctly for OIDC users which are created in 'oidc' namespace. Fixes: https://tracker.ceph.com/issues/49444 Signed-off-by: Pritha Srivastava --- src/rgw/rgw_common.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/rgw/rgw_common.h b/src/rgw/rgw_common.h index 3631273075d..4863ce0fa08 100644 --- a/src/rgw/rgw_common.h +++ b/src/rgw/rgw_common.h @@ -707,7 +707,7 @@ struct RGWUserInfo } void encode(bufferlist& bl) const { - ENCODE_START(21, 9, bl); + ENCODE_START(22, 9, bl); encode((uint64_t)0, bl); // old auid string access_key; string secret_key; @@ -750,10 +750,11 @@ struct RGWUserInfo encode(type, bl); encode(mfa_ids, bl); encode(assumed_role_arn, bl); + encode(user_id.ns, bl); ENCODE_FINISH(bl); } void decode(bufferlist::const_iterator& bl) { - DECODE_START_LEGACY_COMPAT_LEN_32(21, 9, 9, bl); + DECODE_START_LEGACY_COMPAT_LEN_32(22, 9, 9, bl); if (struct_v >= 2) { uint64_t old_auid; decode(old_auid, bl); @@ -834,6 +835,11 @@ struct RGWUserInfo if (struct_v >= 21) { decode(assumed_role_arn, bl); } + if (struct_v >= 22) { + decode(user_id.ns, bl); + } else { + user_id.ns.clear(); + } DECODE_FINISH(bl); } void dump(Formatter *f) const;