]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: PublicAccessBlockConfiguration as raw struct
authorCasey Bodley <cbodley@redhat.com>
Mon, 30 Jun 2025 21:50:26 +0000 (17:50 -0400)
committerCasey Bodley <cbodley@redhat.com>
Wed, 20 May 2026 14:20:21 +0000 (10:20 -0400)
we really don't need encapsulation for this

Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_common.cc
src/rgw/rgw_op.cc
src/rgw/rgw_public_access.cc
src/rgw/rgw_public_access.h

index 0a2538773336d400dcad9d5a898d248c4067c1dc..ac71f65db5fe6db03bcf8e01402dd11031ee5e33 100644 (file)
@@ -1375,7 +1375,7 @@ bool verify_bucket_permission(const DoutPrefixProvider* dpp,
 
   // If RestrictPublicBuckets is enabled and the bucket policy allows public access,
   // deny the request if the requester is not in the bucket owner account
-  const bool restrict_public_buckets = s->public_access_block && s->public_access_block->restrict_public_buckets();
+  const bool restrict_public_buckets = s->public_access_block && s->public_access_block->RestrictPublicBuckets;
   if (restrict_public_buckets && bucket_policy && rgw::IAM::is_public(*bucket_policy) && !s->identity->is_owner_of(s->bucket_info.owner)) {
     ldpp_dout(dpp, 10) << __func__ << ": public policies are blocked by the RestrictPublicBuckets block public access setting" << dendl;
     return false;
@@ -1453,7 +1453,7 @@ bool verify_bucket_permission_no_policy(const DoutPrefixProvider* dpp,
   if (bucket_acl.verify_permission(dpp, *ps->identity, perm, perm,
                                    ps->get_referer(),
                                    ps->public_access_block &&
-                                   ps->public_access_block->ignore_public_acls())) {
+                                   ps->public_access_block->IgnorePublicAcls)) {
     ldpp_dout(dpp, 10) << __func__ << ": granted by bucket acl" << dendl;
     if (granted_by_acl) {
       *granted_by_acl = true;
@@ -1542,7 +1542,7 @@ bool verify_object_permission(const DoutPrefixProvider* dpp, struct perm_state_b
 
   // If RestrictPublicBuckets is enabled and the bucket policy allows public access,
   // deny the request if the requester is not in the bucket owner account
-  const bool restrict_public_buckets = ps->public_access_block && ps->public_access_block->restrict_public_buckets();
+  const bool restrict_public_buckets = ps->public_access_block && ps->public_access_block->RestrictPublicBuckets;
   if (restrict_public_buckets && bucket_policy && rgw::IAM::is_public(*bucket_policy) && !ps->identity->is_owner_of(ps->bucket_info.owner)) {
     ldpp_dout(dpp, 10) << __func__ << ": public policies are blocked by the RestrictPublicBuckets block public access setting" << dendl;
     return false;
@@ -1630,7 +1630,7 @@ bool verify_object_permission_no_policy(const DoutPrefixProvider* dpp,
       object_acl.verify_permission(dpp, *ps->identity, ps->perm_mask, perm,
                                    nullptr, /* http referrer */
                                    ps->public_access_block &&
-                                   ps->public_access_block->ignore_public_acls())) {
+                                   ps->public_access_block->IgnorePublicAcls)) {
     ldpp_dout(dpp, 10) << __func__ << ": granted by object acl" << dendl;
     if (granted_by_acl) {
       *granted_by_acl = true;
index 40fd1365a48fb8293faebb4cbeff83faa7f0412c..0e09706c7451fe911899dbb867c8c61542cce7e4 100644 (file)
@@ -4324,7 +4324,7 @@ int RGWPutObj::init_processing(optional_yield y) {
   } /* copy_source */
 
   // reject public canned acls
-  if (s->public_access_block && s->public_access_block->block_public_acls() &&
+  if (s->public_access_block && s->public_access_block->BlockPublicAcls &&
       (s->canned_acl == "public-read" ||
        s->canned_acl == "public-read-write" ||
        s->canned_acl == "authenticated-read")) {
@@ -6746,7 +6746,7 @@ void RGWPutACLs::execute(optional_yield y)
   }
 
   if (s->public_access_block &&
-      s->public_access_block->block_public_acls() &&
+      s->public_access_block->BlockPublicAcls &&
       new_policy.is_public(this)) {
     op_ret = -EACCES;
     return;
@@ -9209,7 +9209,7 @@ void RGWPutBucketPolicy::execute(optional_yield y)
       s->cct->_conf.get_val<bool>("rgw_policy_reject_invalid_principals"));
     rgw::sal::Attrs attrs(s->bucket_attrs);
     if (s->public_access_block &&
-        s->public_access_block->block_public_policy() &&
+        s->public_access_block->BlockPublicPolicy &&
         rgw::IAM::is_public(p)) {
       op_ret = -EACCES;
       return;
index 6d86ad3516e5bebcec3116195f89fa9f508d9e5b..77c372f149c314eb029e661019164bb3c1c446b6 100644 (file)
@@ -26,10 +26,10 @@ std::ostream& operator<< (std::ostream& os, const PublicAccessBlockConfiguration
     oldState.copyfmt(os);
 
     os << std::boolalpha
-       << "BlockPublicAcls: " << access_conf.block_public_acls() << std::endl
-       << "IgnorePublicAcls: " << access_conf.ignore_public_acls() << std::endl
-       << "BlockPublicPolicy" << access_conf.block_public_policy() << std::endl
-       << "RestrictPublicBuckets" << access_conf.restrict_public_buckets() << std::endl;
+       << "BlockPublicAcls: " << access_conf.BlockPublicAcls << std::endl
+       << "IgnorePublicAcls: " << access_conf.IgnorePublicAcls << std::endl
+       << "BlockPublicPolicy" << access_conf.BlockPublicPolicy << std::endl
+       << "RestrictPublicBuckets" << access_conf.RestrictPublicBuckets << std::endl;
 
     os.copyfmt(oldState);
     return os;
index 4bae36e732db4ee43bbb93a40fdfda2f89fcf4fa..dc282ef3ad8c5e6fed2b29c5a4778010d3ed0d26 100644 (file)
 class XMLObj;
 namespace ceph { class Formatter; }
 
-class PublicAccessBlockConfiguration {
-  bool BlockPublicAcls;
-  bool IgnorePublicAcls;
-  bool BlockPublicPolicy;
-  bool RestrictPublicBuckets;
- public:
- PublicAccessBlockConfiguration():
-   BlockPublicAcls(false), IgnorePublicAcls(false),
-  BlockPublicPolicy(false), RestrictPublicBuckets(false)
-    {}
-
-  auto block_public_acls() const {
-    return BlockPublicAcls;
-  }
-  auto ignore_public_acls() const {
-    return IgnorePublicAcls;
-  }
-  auto block_public_policy() const {
-    return BlockPublicPolicy;
-  }
-  auto restrict_public_buckets() const {
-    return RestrictPublicBuckets;
-  }
+struct PublicAccessBlockConfiguration {
+  bool BlockPublicAcls = false;
+  bool IgnorePublicAcls = false;
+  bool BlockPublicPolicy = false;
+  bool RestrictPublicBuckets = false;
 
   void encode(ceph::bufferlist& bl) const {
     ENCODE_START(1,1, bl);