From 2cb5f066fa11321b7edf8d2a47c51814c62da209 Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Tue, 22 Jan 2019 20:19:25 +0100 Subject: [PATCH] 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 --- src/auth/AuthSessionHandler.cc | 6 +++--- src/auth/AuthSessionHandler.h | 19 +------------------ src/auth/cephx/CephxSessionHandler.h | 18 +++++++++++++----- src/auth/krb/KrbSessionHandler.hpp | 8 +------- src/auth/none/AuthNoneSessionHandler.h | 11 +++-------- src/auth/unknown/AuthUnknownSessionHandler.h | 12 +++--------- 6 files changed, 24 insertions(+), 50 deletions(-) diff --git a/src/auth/AuthSessionHandler.cc b/src/auth/AuthSessionHandler.cc index 54dbdb79598..1be86fb0950 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 76e31a003a3..341db88e721 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 0def90cbed2..03a6ef50c89 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 fcfe4b84522..9f715730a56 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 63ff7974daa..2c738191f5e 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 637176ed9c1..9bf901004a2 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 -- 2.39.5