#include "Auth.h"
#include "AuthMethodList.h"
#include "include/types.h"
-#include "common/Mutex.h"
+#include "common/ceph_mutex.h"
// Different classes of session crypto handling
#define SESSION_CRYPTO_NONE 0
};
class AuthAuthorizeHandlerRegistry {
- Mutex m_lock;
+ ceph::mutex m_lock;
map<int,AuthAuthorizeHandler*> m_authorizers;
AuthMethodList supported;
public:
AuthAuthorizeHandlerRegistry(CephContext *cct_, const std::string &methods)
- : m_lock("AuthAuthorizeHandlerRegistry::m_lock"), supported(cct_, methods)
+ : m_lock{ceph::make_mutex("AuthAuthorizeHandlerRegistry::m_lock")},
+ supported{cct_, methods}
{}
~AuthAuthorizeHandlerRegistry();
KeyServer::KeyServer(CephContext *cct_, KeyRing *extra_secrets)
: cct(cct_),
data(extra_secrets),
- lock("KeyServer::lock")
+ lock{ceph::make_mutex("KeyServer::lock")}
{
}
int KeyServer::start_server()
{
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
_check_rotating_secrets();
_dump_rotating_secrets();
bool KeyServer::get_secret(const EntityName& name, CryptoKey& secret) const
{
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
return data.get_secret(name, secret);
}
bool KeyServer::get_auth(const EntityName& name, EntityAuth& auth) const
{
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
return data.get_auth(name, auth);
}
bool KeyServer::get_caps(const EntityName& name, const string& type,
AuthCapsInfo& caps_info) const
{
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
return data.get_caps(cct, name, type, caps_info);
}
bool KeyServer::get_service_secret(uint32_t service_id,
ExpiringCryptoKey& secret, uint64_t& secret_id) const
{
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
return data.get_service_secret(cct, service_id, secret, secret_id);
}
bool KeyServer::get_service_secret(uint32_t service_id,
CryptoKey& secret, uint64_t& secret_id) const
{
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
return data.get_service_secret(cct, service_id, secret, secret_id);
}
bool KeyServer::get_service_secret(uint32_t service_id,
uint64_t secret_id, CryptoKey& secret) const
{
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
return data.get_service_secret(cct, service_id, secret_id, secret);
}
if (!generate_secret(secret))
return false;
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
EntityAuth auth;
auth.key = secret;
bool KeyServer::contains(const EntityName& name) const
{
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
return data.contains(name);
}
int KeyServer::encode_secrets(Formatter *f, stringstream *ds) const
{
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
map<EntityName, EntityAuth>::const_iterator mapiter = data.secrets_begin();
if (mapiter == data.secrets_end())
bool KeyServer::updated_rotating(bufferlist& rotating_bl, version_t& rotating_ver)
{
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
_check_rotating_secrets();
bool KeyServer::get_rotating_encrypted(const EntityName& name,
bufferlist& enc_bl) const
{
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
map<EntityName, EntityAuth>::const_iterator mapiter = data.find_name(name);
if (mapiter == data.secrets_end())
bool KeyServer::get_service_caps(const EntityName& name, uint32_t service_id,
AuthCapsInfo& caps_info) const
{
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
return _get_service_caps(name, service_id, caps_info);
}
return -EPERM;
}
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
return _build_session_auth_info(service_id, auth_ticket_info, info);
}
info.service_secret = service_secret;
info.secret_id = secret_id;
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
return _build_session_auth_info(service_id, auth_ticket_info, info);
}
#include "auth/KeyRing.h"
#include "CephxProtocol.h"
#include "CephxKeyServer.h"
-#include "common/Mutex.h"
+#include "common/ceph_mutex.h"
class CephContext;
class KeyServer : public KeyStore {
CephContext *cct;
KeyServerData data;
- mutable Mutex lock;
+ mutable ceph::mutex lock;
int _rotate_secret(uint32_t service_id);
bool _check_rotating_secrets();
encode(data, bl);
}
void decode(bufferlist::const_iterator& bl) {
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
using ceph::decode;
decode(data, bl);
}
return encode_secrets(NULL, &ds);
}
version_t get_ver() const {
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
return data.version;
}
void clear_secrets() {
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
data.clear_secrets();
}
void apply_data_incremental(KeyServerData::Incremental& inc) {
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
data.apply_incremental(inc);
}
void set_ver(version_t ver) {
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
data.version = ver;
}
void add_auth(const EntityName& name, EntityAuth& auth) {
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
data.add_auth(name, auth);
}
void remove_secret(const EntityName& name) {
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
data.remove_secret(name);
}
return (b != data.secrets_end());
}
int get_num_secrets() {
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
return data.secrets.size();
}
void clone_to(KeyServerData& dst) const {
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
dst = data;
}
void export_keyring(KeyRing& keyring) {
- Mutex::Locker l(lock);
+ std::scoped_lock l{lock};
for (map<EntityName, EntityAuth>::iterator p = data.secrets.begin();
p != data.secrets.end();
++p) {
bool get_rotating_encrypted(const EntityName& name, bufferlist& enc_bl) const;
- Mutex& get_lock() const { return lock; }
+ ceph::mutex& get_lock() const { return lock; }
bool get_service_caps(const EntityName& name, uint32_t service_id,
AuthCapsInfo& caps) const;