]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
auth: clean up AuthServiceHandler::handle_request() args
authorSage Weil <sage@redhat.com>
Mon, 14 Jan 2019 22:45:13 +0000 (16:45 -0600)
committerSage Weil <sage@redhat.com>
Thu, 7 Feb 2019 12:53:03 +0000 (06:53 -0600)
Signed-off-by: Sage Weil <sage@redhat.com>
src/auth/AuthServiceHandler.h
src/auth/cephx/CephxServiceHandler.cc
src/auth/cephx/CephxServiceHandler.h
src/auth/krb/KrbServiceHandler.cpp
src/auth/krb/KrbServiceHandler.hpp
src/auth/none/AuthNoneServiceHandler.h
src/auth/unknown/AuthUnknownServiceHandler.h
src/mon/AuthMonitor.cc

index 1aa1bcc7ea3d1141dffe1247be5d53b719369a52..a4464049c9e7479786ace4512ccf92ec5bef07c4 100644 (file)
@@ -38,7 +38,10 @@ public:
   virtual int start_session(const EntityName& name,
                            bufferlist *result,
                            AuthCapsInfo *caps) = 0;
-  virtual int handle_request(bufferlist::const_iterator& indata, bufferlist& result, uint64_t& global_id, AuthCapsInfo& caps) = 0;
+  virtual int handle_request(bufferlist::const_iterator& indata,
+                            bufferlist *result,
+                            uint64_t *global_id,
+                            AuthCapsInfo *caps) = 0;
 
   EntityName& get_entity_name() { return entity_name; }
 };
index ae0b2bb5e1145bfd8211615ad0b5ce97af753799..091e791e64233ae268d21300f3c9b65d52eb9dce 100644 (file)
@@ -45,18 +45,22 @@ int CephxServiceHandler::start_session(const EntityName& name,
   return 0;
 }
 
-int CephxServiceHandler::handle_request(bufferlist::const_iterator& indata, bufferlist& result_bl, uint64_t& global_id, AuthCapsInfo& caps)
+int CephxServiceHandler::handle_request(
+  bufferlist::const_iterator& indata,
+  bufferlist *result_bl,
+  uint64_t *global_id,
+  AuthCapsInfo *caps)
 {
   int ret = 0;
 
   struct CephXRequestHeader cephx_header;
   decode(cephx_header, indata);
 
-
   switch (cephx_header.request_type) {
   case CEPHX_GET_AUTH_SESSION_KEY:
     {
-      ldout(cct, 10) << "handle_request get_auth_session_key for " << entity_name << dendl;
+      ldout(cct, 10) << "handle_request get_auth_session_key for "
+                    << entity_name << dendl;
 
       CephXAuthenticate req;
       decode(req, indata);
@@ -105,14 +109,16 @@ int CephxServiceHandler::handle_request(bufferlist::const_iterator& indata, buff
 
       if (cephx_decode_ticket(cct, key_server, CEPH_ENTITY_TYPE_AUTH,
                              req.old_ticket, old_ticket_info)) {
-        global_id = old_ticket_info.ticket.global_id;
-        ldout(cct, 10) << "decoded old_ticket with global_id=" << global_id << dendl;
+        *global_id = old_ticket_info.ticket.global_id;
+        ldout(cct, 10) << "decoded old_ticket with global_id=" << *global_id
+                      << dendl;
         should_enc_ticket = true;
       }
 
-      info.ticket.init_timestamps(ceph_clock_now(), cct->_conf->auth_mon_ticket_ttl);
+      info.ticket.init_timestamps(ceph_clock_now(),
+                                 cct->_conf->auth_mon_ticket_ttl);
       info.ticket.name = entity_name;
-      info.ticket.global_id = global_id;
+      info.ticket.global_id = *global_id;
       info.validity += cct->_conf->auth_mon_ticket_ttl;
 
       key_server->generate_secret(session_key);
@@ -128,17 +134,19 @@ int CephxServiceHandler::handle_request(bufferlist::const_iterator& indata, buff
       vector<CephXSessionAuthInfo> info_vec;
       info_vec.push_back(info);
 
-      build_cephx_response_header(cephx_header.request_type, 0, result_bl);
-      if (!cephx_build_service_ticket_reply(cct, eauth.key, info_vec, should_enc_ticket,
-                                           old_ticket_info.session_key, result_bl)) {
+      build_cephx_response_header(cephx_header.request_type, 0, *result_bl);
+      if (!cephx_build_service_ticket_reply(
+           cct, eauth.key, info_vec, should_enc_ticket,
+           old_ticket_info.session_key, *result_bl)) {
        ret = -EIO;
       }
 
-      if (!key_server->get_service_caps(entity_name, CEPH_ENTITY_TYPE_MON, caps)) {
+      if (!key_server->get_service_caps(entity_name, CEPH_ENTITY_TYPE_MON,
+                                       *caps)) {
         ldout(cct, 0) << " could not get mon caps for " << entity_name << dendl;
         ret = -EACCES;
       } else {
-        char *caps_str = caps.caps.c_str();
+        char *caps_str = caps->caps.c_str();
         if (!caps_str || !caps_str[0]) {
           ldout(cct,0) << "mon caps null for " << entity_name << dendl;
           ret = -EACCES;
@@ -196,16 +204,18 @@ int CephxServiceHandler::handle_request(bufferlist::const_iterator& indata, buff
        ret = service_err;
       }
       CryptoKey no_key;
-      build_cephx_response_header(cephx_header.request_type, ret, result_bl);
-      cephx_build_service_ticket_reply(cct, auth_ticket_info.session_key, info_vec, false, no_key, result_bl);
+      build_cephx_response_header(cephx_header.request_type, ret, *result_bl);
+      cephx_build_service_ticket_reply(cct, auth_ticket_info.session_key,
+                                      info_vec, false, no_key, *result_bl);
     }
     break;
 
   case CEPHX_GET_ROTATING_KEY:
     {
-      ldout(cct, 10) << "handle_request getting rotating secret for " << entity_name << dendl;
-      build_cephx_response_header(cephx_header.request_type, 0, result_bl);
-      if (!key_server->get_rotating_encrypted(entity_name, result_bl)) {
+      ldout(cct, 10) << "handle_request getting rotating secret for "
+                    << entity_name << dendl;
+      build_cephx_response_header(cephx_header.request_type, 0, *result_bl);
+      if (!key_server->get_rotating_encrypted(entity_name, *result_bl)) {
         ret = -EPERM;
         break;
       }
index 4d8804d559d3c5beda3994e745e705737983d8ae..b6acb3c71d8f7e1b62d99c65dfd5fcd4ae40306b 100644 (file)
@@ -32,7 +32,11 @@ public:
   int start_session(const EntityName& name,
                    bufferlist *result_bl,
                    AuthCapsInfo *caps) override;
-  int handle_request(bufferlist::const_iterator& indata, bufferlist& result_bl, uint64_t& global_id, AuthCapsInfo& caps) override;
+  int handle_request(
+    bufferlist::const_iterator& indata,
+    bufferlist *result_bl,
+    uint64_t *global_id,
+    AuthCapsInfo *caps) override;
   void build_cephx_response_header(int request_type, int status, bufferlist& bl);
 };
 
index f896c3fd7778f843e467314410ae7633a8a8fec2..2935ee06c5129eba0e72270d4fa1fc776f6ac7b2 100644 (file)
@@ -27,9 +27,9 @@
 
 
 int KrbServiceHandler::handle_request(bufferlist::const_iterator& indata, 
-                                      bufferlist& buff_list, 
-                                      uint64_t& global_id, 
-                                      AuthCapsInfo& caps) 
+                                      bufferlist *buff_list,
+                                      uint64_t *global_id,
+                                      AuthCapsInfo *caps)
 {
   auto result(0);
   gss_buffer_desc gss_buffer_in = {0, nullptr};
@@ -93,13 +93,13 @@ int KrbServiceHandler::handle_request(bufferlist::const_iterator& indata,
                "[KrbServiceHandler(GSS_S_COMPLETE)] " << dendl; 
         if (!m_key_server->get_service_caps(entity_name, 
                                             CEPH_ENTITY_TYPE_MON, 
-                                            caps)) {
+                                            *caps)) {
           result = (-EACCES);
           ldout(cct, 0)
               << "KrbServiceHandler::handle_response() : "
                  "ERROR: Could not get MONITOR CAPS : " << entity_name << dendl;
         } else {
-          if (!caps.caps.c_str()) {
+          if (!caps->caps.c_str()) {
             result = (-EACCES);
             ldout(cct, 0)
                 << "KrbServiceHandler::handle_response() : "
@@ -132,13 +132,13 @@ int KrbServiceHandler::handle_request(bufferlist::const_iterator& indata,
         static_cast<int>(GSSAuthenticationRequest::GSS_TOKEN);
 
     using ceph::encode;
-    encode(krb_response, buff_list);
+    encode(krb_response, *buff_list);
 
     krb_token.m_token_blob.append(buffer::create_static(
                                     m_gss_buffer_out.length, 
                                     reinterpret_cast<char*>
                                       (m_gss_buffer_out.value)));
-    encode(krb_token, buff_list);
+    encode(krb_token, *buff_list);
     ldout(cct, 20) 
         << "KrbServiceHandler::handle_request() : Token Blob: " << "\n"; 
     krb_token.m_token_blob.hexdump(*_dout);
index 649c5f38887a349c0516e10e28ed043d536e50c4..8f81158631f0bdbfdde4993ea8ecad3e29110e3b 100644 (file)
@@ -37,10 +37,10 @@ class KrbServiceHandler : public AuthServiceHandler {
       m_gss_service_name(GSS_C_NO_NAME), 
       m_key_server(kserver) { }
     ~KrbServiceHandler();
-    int handle_request(bufferlist::const_iterator& indata, 
-                       bufferlist& buff_list, 
-                       uint64_t& global_id, 
-                       AuthCapsInfocaps) override;
+    int handle_request(bufferlist::const_iterator& indata,
+                       bufferlist *buff_list,
+                       uint64_t *global_id,
+                       AuthCapsInfo *caps) override;
 
     int start_session(const EntityName& name,
                       bufferlist *buff_list,
index 0f90a840252309836a0eba07d0e9271cd9dbbe04..11771be6ef3e3a1593b24fbbd5dacc52350e8755 100644 (file)
@@ -33,7 +33,10 @@ public:
     caps->allow_all = true;
     return 0;
   }
-  int handle_request(bufferlist::const_iterator& indata, bufferlist& result_bl, uint64_t& global_id, AuthCapsInfo& caps) override {
+  int handle_request(bufferlist::const_iterator& indata,
+                    bufferlist *result_bl,
+                    uint64_t *global_id,
+                    AuthCapsInfo *caps) override {
     return 0;
   }
   void build_cephx_response_header(int request_type, int status, bufferlist& bl) { }
index a7856093e7c6fc1b41e40881b5010618983455a9..b7cdf48087713476fcff870b488def9c98e6c2ba 100644 (file)
@@ -31,7 +31,10 @@ public:
                    AuthCapsInfo *caps) {
     return 0;
   }
-  int handle_request(bufferlist::iterator& indata, bufferlist& result_bl, uint64_t& global_id, AuthCapsInfo& caps) {
+  int handle_request(bufferlist::iterator& indata,
+                    bufferlist *result_bl,
+                    uint64_t *global_id,
+                    AuthCapsInfo *caps) {
     ceph_abort();  // shouldn't get called
     return 0;
   }
index 6f2e676edaac29e278ebb0343a4d41269af39d2b..6e530a75334472f3a65a6602caa8615c78cec4ef 100644 (file)
@@ -647,9 +647,9 @@ bool AuthMonitor::prep_auth(MonOpRequestRef op, bool paxos_writable)
       // request
       ret = s->auth_handler->handle_request(
        indata,
-       response_bl,
-       s->con->peer_global_id,
-       s->con->peer_caps_info);
+       &response_bl,
+       &s->con->peer_global_id,
+       &s->con->peer_caps_info);
     }
     if (ret == -EIO) {
       wait_for_active(op, new C_RetryMessage(this,op));