From: Radoslaw Zarzynski Date: Tue, 22 Jan 2019 19:19:25 +0000 (+0100) Subject: auth: make AuthSessionHandler purely abstract. X-Git-Tag: v14.1.1~157^2~63 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2cb5f066fa11321b7edf8d2a47c51814c62da209;p=ceph.git auth: make AuthSessionHandler purely abstract. This is possible because the dropped state is/was required only by: * CephxSessionHandler, * methods removed by the previous commits. Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/auth/AuthSessionHandler.cc b/src/auth/AuthSessionHandler.cc index 54dbdb79598a..1be86fb0950f 100644 --- a/src/auth/AuthSessionHandler.cc +++ b/src/auth/AuthSessionHandler.cc @@ -43,12 +43,12 @@ AuthSessionHandler *get_auth_session_handler( } return new CephxSessionHandler(cct, key, connection_secret, features); case CEPH_AUTH_NONE: - return new AuthNoneSessionHandler(cct, key, connection_secret); + return new AuthNoneSessionHandler(); case CEPH_AUTH_UNKNOWN: - return new AuthUnknownSessionHandler(cct, key, connection_secret); + return new AuthUnknownSessionHandler(); #ifdef HAVE_GSSAPI case CEPH_AUTH_GSS: - return new KrbSessionHandler(cct, key, connection_secret); + return new KrbSessionHandler(); #endif default: return nullptr; diff --git a/src/auth/AuthSessionHandler.h b/src/auth/AuthSessionHandler.h index 76e31a003a30..341db88e7215 100644 --- a/src/auth/AuthSessionHandler.h +++ b/src/auth/AuthSessionHandler.h @@ -27,24 +27,7 @@ class CephContext; class Message; struct AuthSessionHandler { -protected: - CephContext *cct; - int protocol; - CryptoKey key; // per mon authentication - std::string connection_secret; // per connection - -public: - explicit AuthSessionHandler(CephContext *cct_) : cct(cct_), protocol(CEPH_AUTH_UNKNOWN) {} - - AuthSessionHandler(CephContext *cct_, int protocol_, - const CryptoKey& key_, - const std::string& cs_) - : cct(cct_), - protocol(protocol_), - key(key_), - connection_secret(cs_) {} - virtual ~AuthSessionHandler() { } - + virtual ~AuthSessionHandler() = default; virtual int sign_message(Message *message) = 0; virtual int check_message_signature(Message *message) = 0; virtual int encrypt_message(Message *message) = 0; diff --git a/src/auth/cephx/CephxSessionHandler.h b/src/auth/cephx/CephxSessionHandler.h index 0def90cbed26..03a6ef50c892 100644 --- a/src/auth/cephx/CephxSessionHandler.h +++ b/src/auth/cephx/CephxSessionHandler.h @@ -20,16 +20,24 @@ class CephContext; class Message; class CephxSessionHandler : public AuthSessionHandler { + CephContext *cct; + int protocol; + CryptoKey key; // per mon authentication + std::string connection_secret; // per connection uint64_t features; public: - CephxSessionHandler(CephContext *cct_, + CephxSessionHandler(CephContext *cct, const CryptoKey& session_key, const std::string& connection_secret, - uint64_t features) - : AuthSessionHandler(cct_, CEPH_AUTH_CEPHX, session_key, connection_secret), - features(features) {} - ~CephxSessionHandler() override {} + const uint64_t features) + : cct(cct), + protocol(CEPH_AUTH_CEPHX), + key(session_key), + connection_secret(connection_secret), + features(features) { + } + ~CephxSessionHandler() override = default; int _calc_signature(Message *m, uint64_t *psig); diff --git a/src/auth/krb/KrbSessionHandler.hpp b/src/auth/krb/KrbSessionHandler.hpp index fcfe4b845224..9f715730a56d 100644 --- a/src/auth/krb/KrbSessionHandler.hpp +++ b/src/auth/krb/KrbSessionHandler.hpp @@ -29,18 +29,12 @@ #define dout_subsys ceph_subsys_auth - -class CephContext; class Message; class KrbSessionHandler : public AuthSessionHandler { public: - KrbSessionHandler(CephContext* ceph_ctx, - const CryptoKey& session_key, - const std::string& connection_secret) : - AuthSessionHandler(ceph_ctx, CEPH_AUTH_GSS, session_key, - connection_secret) { } + KrbSessionHandler() = default; ~KrbSessionHandler() override = default; // No security diff --git a/src/auth/none/AuthNoneSessionHandler.h b/src/auth/none/AuthNoneSessionHandler.h index 63ff7974daad..2c738191f5ed 100644 --- a/src/auth/none/AuthNoneSessionHandler.h +++ b/src/auth/none/AuthNoneSessionHandler.h @@ -15,15 +15,10 @@ #include "auth/AuthSessionHandler.h" #include "msg/Message.h" -class CephContext; - -class AuthNoneSessionHandler : public AuthSessionHandler { +class AuthNoneSessionHandler : public AuthSessionHandler { public: - AuthNoneSessionHandler(CephContext *cct_, - const CryptoKey& session_key, - const std::string& connection_secret) - : AuthSessionHandler(cct_, CEPH_AUTH_NONE, session_key, connection_secret) {} - ~AuthNoneSessionHandler() override {} + AuthNoneSessionHandler() = default; + ~AuthNoneSessionHandler() override = default; // The None suite neither signs nor encrypts messages, so these functions just return success. // Since nothing was signed or encrypted, don't increment the stats. PLR diff --git a/src/auth/unknown/AuthUnknownSessionHandler.h b/src/auth/unknown/AuthUnknownSessionHandler.h index 637176ed9c1a..9bf901004a21 100644 --- a/src/auth/unknown/AuthUnknownSessionHandler.h +++ b/src/auth/unknown/AuthUnknownSessionHandler.h @@ -17,16 +17,10 @@ #define dout_subsys ceph_subsys_auth -class CephContext; - -class AuthUnknownSessionHandler : public AuthSessionHandler { +class AuthUnknownSessionHandler : public AuthSessionHandler { public: - AuthUnknownSessionHandler(CephContext *cct_, - const CryptoKey& session_key, - const std::string& connection_secret) - : AuthSessionHandler(cct_, CEPH_AUTH_UNKNOWN, - session_key, connection_secret) {} - ~AuthUnknownSessionHandler() override {} + AuthUnknownSessionHandler() = default; + ~AuthUnknownSessionHandler() override = default; // The Unknown suite neither signs nor encrypts messages, so these functions just return success. // Since nothing was signed or encrypted, don't increment the stats. PLR