From: Matt Benjamin Date: Fri, 4 Jan 2019 21:25:16 +0000 (-0500) Subject: rgw ldap: move conditional LDAPEngine init into it's ctor X-Git-Tag: v14.1.0~304^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=97e6c9dac7ca9050d7b16ac160120acbe6ddc33c;p=ceph.git rgw ldap: move conditional LDAPEngine init into it's ctor rgw::auth::ExternalAuthStrategy defines an LDAPEngine in a ctor-initializer list, making it too late to conditionally initialize -it- in ExternalAuthStrategy's ctor. Fixes: https://tracker.ceph.com/issues/24228 Signed-off-by: Matt Benjamin --- diff --git a/src/rgw/rgw_auth_s3.h b/src/rgw/rgw_auth_s3.h index d848d9171362..43fbbb52e3af 100644 --- a/src/rgw/rgw_auth_s3.h +++ b/src/rgw/rgw_auth_s3.h @@ -133,8 +133,7 @@ public: } - if (cct->_conf->rgw_s3_auth_use_ldap && - ! cct->_conf->rgw_ldap_uri.empty()) { + if (ldap_engine.valid()) { add_engine(Control::SUFFICIENT, ldap_engine); } } diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index ed3a819af094..9757b1d11dd3 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -4214,6 +4214,11 @@ std::mutex rgw::auth::s3::LDAPEngine::mtx; void rgw::auth::s3::LDAPEngine::init(CephContext* const cct) { + if (! cct->_conf->rgw_s3_auth_use_ldap || + ! cct->_conf->rgw_ldap_uri.empty()) { + return; + } + if (! ldh) { std::lock_guard lck(mtx); if (! ldh) { @@ -4233,6 +4238,11 @@ void rgw::auth::s3::LDAPEngine::init(CephContext* const cct) } } +bool rgw::auth::s3::LDAPEngine::valid() { + std::lock_guard lck(mtx); + return (!!ldh); +} + rgw::auth::RemoteApplier::acl_strategy_t rgw::auth::s3::LDAPEngine::get_acl_strategy() const { diff --git a/src/rgw/rgw_rest_s3.h b/src/rgw/rgw_rest_s3.h index c425f97c7f3c..feec1d9d1726 100644 --- a/src/rgw/rgw_rest_s3.h +++ b/src/rgw/rgw_rest_s3.h @@ -856,6 +856,7 @@ public: return "rgw::auth::s3::LDAPEngine"; } + static bool valid(); static void shutdown(); };