From: Pritha Srivastava Date: Thu, 20 Jul 2023 06:05:09 +0000 (+0530) Subject: rgw/auth: Fix the return code returned by AuthStrategy, X-Git-Tag: v17.2.8~146^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=40176698ef7c62cddfd9e7d093bb38ddd879fab8;p=ceph.git rgw/auth: Fix the return code returned by AuthStrategy, in case of LocalEngine authentication, when the previous auth engine is Not Applicable. The error code now returned is the one returned by LocalEngine. fixes: https://tracker.ceph.com/issues/61916 Signed-off-by: Pritha Srivastava (cherry picked from commit 6f7ef8620e52be776ef633bb962a4309996529df) --- diff --git a/src/rgw/rgw_auth.cc b/src/rgw/rgw_auth.cc index 369627c6d7b8..869bef6c6aaa 100644 --- a/src/rgw/rgw_auth.cc +++ b/src/rgw/rgw_auth.cc @@ -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(strategy_result)); + return std::make_pair(false, std::move(engine_result)); default: /* Huh, memory corruption? */ diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index cb15834a1620..4a4b5ad97b0b 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -6118,7 +6118,7 @@ rgw::auth::s3::LocalEngine::authenticate( if (store->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::deny(-ERR_INVALID_ACCESS_KEY); + return result_t::reject(-ERR_INVALID_ACCESS_KEY); } //TODO: Uncomment, when we have a migration plan in place. /*else { @@ -6132,7 +6132,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::deny(-EPERM); + return result_t::reject(-EPERM); } const RGWAccessKey& k = iter->second; @@ -6148,7 +6148,7 @@ rgw::auth::s3::LocalEngine::authenticate( ldpp_dout(dpp, 15) << "compare=" << compare << dendl; if (compare != 0) { - return result_t::deny(-ERR_SIGNATURE_NO_MATCH); + return result_t::reject(-ERR_SIGNATURE_NO_MATCH); } auto apl = apl_factory->create_apl_local(cct, s, user->get_info(),