]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/mon: implement Dispatcher::ms_get_authorizer()
authorKefu Chai <kchai@redhat.com>
Mon, 4 Mar 2019 05:09:40 +0000 (13:09 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 20 Mar 2019 03:36:07 +0000 (11:36 +0800)
we need this method for supporting cephx authentication

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/mon/MonClient.cc
src/crimson/mon/MonClient.h

index 4b61270c271f22853d099627ed9937142b027b0c..dba89c9f5124df76f01bcd0dd2fde5217372dfde 100644 (file)
@@ -58,7 +58,7 @@ public:
                                 uint32_t want_keys);
   seastar::future<> close();
   bool is_my_peer(const entity_addr_t& addr) const;
-
+  AuthAuthorizer* get_authorizer(peer_type_t peer) const;
   seastar::future<> renew_tickets();
   ceph::net::ConnectionRef get_conn();
 
@@ -105,6 +105,15 @@ seastar::future<> Connection::renew_tickets()
   return seastar::now();
 }
 
+AuthAuthorizer* Connection::get_authorizer(peer_type_t peer) const
+{
+  if (auth) {
+    return auth->build_authorizer(peer);
+  } else {
+    return nullptr;
+  }
+}
+
 std::unique_ptr<AuthClientHandler>
 Connection::create_auth(Ref<MAuthReply> m,
                         const EntityName& name,
@@ -354,6 +363,16 @@ seastar::future<> Client::ms_handle_reset(ceph::net::ConnectionRef conn)
   }
 }
 
+AuthAuthorizer* Client::ms_get_authorizer(peer_type_t peer) const
+{
+  if (active_con) {
+    return active_con->get_authorizer(peer);
+  } else {
+    return nullptr;
+  }
+}
+
+
 seastar::future<> Client::handle_monmap(ceph::net::ConnectionRef conn,
                                         Ref<MMonMap> m)
 {
index ef9bcb690561eb32925facc22874fae4356735ae..ffce5b06d19cf72c7a68d9f1b411a32790b78c12 100644 (file)
@@ -90,6 +90,7 @@ private:
   seastar::future<> ms_dispatch(ceph::net::ConnectionRef conn,
                                MessageRef m) override;
   seastar::future<> ms_handle_reset(ceph::net::ConnectionRef conn) override;
+  AuthAuthorizer* ms_get_authorizer(peer_type_t peer) const override;
 
   seastar::future<> handle_monmap(ceph::net::ConnectionRef conn,
                                  Ref<MMonMap> m);