return {};
}
+ string get_subuser() const override {
+ return {};
+ }
+
void to_str(std::ostream& out) const override {
out << "RGWDummyIdentityApplier(auth_id=" << id
<< ", perm_mask=" << perm_mask
/* Name of Account */
virtual string get_acct_name() const = 0;
+
+ /* Subuser of Account */
+ virtual string get_subuser() const = 0;
};
inline std::ostream& operator<<(std::ostream& out,
return token_claims.user_name;
}
+ string get_subuser() const override {
+ return {};
+ }
+
struct Factory {
virtual ~Factory() {}
void load_acct_info(const DoutPrefixProvider* dpp, RGWUserInfo& user_info) const override; /* out */
uint32_t get_identity_type() const override { return info.acct_type; }
string get_acct_name() const override { return info.acct_name; }
+ string get_subuser() const override { return {}; }
struct Factory {
virtual ~Factory() {}
void load_acct_info(const DoutPrefixProvider* dpp, RGWUserInfo& user_info) const override; /* out */
uint32_t get_identity_type() const override { return TYPE_RGW; }
string get_acct_name() const override { return {}; }
+ string get_subuser() const override { return subuser; }
struct Factory {
virtual ~Factory() {}
void load_acct_info(const DoutPrefixProvider* dpp, RGWUserInfo& user_info) const override; /* out */
uint32_t get_identity_type() const override { return TYPE_ROLE; }
string get_acct_name() const override { return {}; }
+ string get_subuser() const override { return {}; }
void modify_request_state(const DoutPrefixProvider* dpp, req_state* s) const override;
struct Factory {
return get_decoratee().get_acct_name();
}
+ string get_subuser() const override {
+ return get_decoratee().get_subuser();
+ }
+
bool is_identity(
const boost::container::flat_set<Principal>& ids) const override {
return get_decoratee().is_identity(ids);
jf.dump_string("params", s->info.request_params.c_str());
jf.dump_string("request_uri_aws4", s->info.request_uri_aws4.c_str());
jf.dump_string("object_name", s->object.name.c_str());
+ jf.dump_string("subuser", s->auth.identity->get_subuser().c_str());
jf.dump_object("user_info", *s->user);
jf.dump_object("bucket_info", s->bucket_info);
jf.close_section();