]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Revert "rgw/auth: Fix the return code returned by AuthStrategy,"
authorPritha Srivastava <prsrivas@redhat.com>
Tue, 19 Nov 2024 16:20:58 +0000 (21:50 +0530)
committerCasey Bodley <cbodley@redhat.com>
Tue, 28 Jan 2025 14:31:12 +0000 (09:31 -0500)
This reverts commit 6f7ef8620e52be776ef633bb962a4309996529df.

the above fix introduced regression for ec2 auth when rgw_s3_auth_order
has local before external.

fixes: https://tracker.ceph.com/issues/68393

Signed-off-by: Pritha Srivastava <prsrivas@redhat.com>
(cherry picked from commit 543fd1041f5684bcf2a68b691f32096bea47c5f3)

src/rgw/rgw_auth.cc
src/rgw/rgw_rest_s3.cc

index 7be6518514e85b88eb1569da739a7f99adb75c2c..2c61b8361a2bbdbf4db75dbcdf71cf3c059dcb70 100644 (file)
@@ -172,7 +172,7 @@ strategy_handle_rejected(rgw::auth::Engine::result_t&& engine_result,
 
     case Control::FALLBACK:
       /* Don't try next. */
-      return std::make_pair(false, std::move(engine_result));
+      return std::make_pair(false, std::move(strategy_result));
 
     default:
       /* Huh, memory corruption? */
index 7aa1ce2776914ba8d411cd543d9a67996cea1a39..edf3bd02938b09f1b5a2c6f93c62b17cfdc92786 100644 (file)
@@ -6288,7 +6288,7 @@ rgw::auth::s3::LocalEngine::authenticate(
   if (driver->get_user_by_access_key(dpp, access_key_id, y, &user) < 0) {
       ldpp_dout(dpp, 5) << "error reading user info, uid=" << access_key_id
               << " can't authenticate" << dendl;
-      return result_t::reject(-ERR_INVALID_ACCESS_KEY);
+      return result_t::deny(-ERR_INVALID_ACCESS_KEY);
   }
   //TODO: Uncomment, when we have a migration plan in place.
   /*else {
@@ -6302,7 +6302,7 @@ rgw::auth::s3::LocalEngine::authenticate(
   const auto iter = user->get_info().access_keys.find(access_key_id);
   if (iter == std::end(user->get_info().access_keys)) {
     ldpp_dout(dpp, 0) << "ERROR: access key not encoded in user info" << dendl;
-    return result_t::reject(-EPERM);
+    return result_t::deny(-EPERM);
   }
   const RGWAccessKey& k = iter->second;
 
@@ -6325,7 +6325,7 @@ rgw::auth::s3::LocalEngine::authenticate(
   ldpp_dout(dpp, 15) << "compare=" << compare << dendl;
 
   if (compare != 0) {
-    return result_t::reject(-ERR_SIGNATURE_NO_MATCH);
+    return result_t::deny(-ERR_SIGNATURE_NO_MATCH);
   }
 
   auto apl = apl_factory->create_apl_local(cct, s, user->get_info(),