+++ /dev/null
-// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
-// vim: ts=8 sw=2 smarttab
-
-#pragma once
-
-#include "crimson/net/Fwd.h"
-
-class AuthAuthorizer;
-
-namespace ceph::common {
-class AuthService {
-public:
- virtual AuthAuthorizer* get_authorizer(peer_type_t peer) const = 0;
- virtual ~AuthService() = default;
-};
-}
}
}
-AuthAuthorizer* Client::ms_get_authorizer(peer_type_t peer) const
-{
- if (active_con) {
- return active_con->get_authorizer(peer);
- } else {
- return nullptr;
- }
-}
-
-AuthAuthorizer* Client::get_authorizer(peer_type_t peer) const
-{
- return ms_get_authorizer(peer);
-}
-
std::pair<std::vector<uint32_t>, std::vector<uint32_t>>
Client::get_supported_auth_methods(int peer_type)
{
#include "crimson/auth/AuthClient.h"
#include "crimson/auth/AuthServer.h"
-#include "crimson/common/auth_service.h"
#include "crimson/common/auth_handler.h"
#include "crimson/net/Dispatcher.h"
#include "crimson/net/Fwd.h"
class Connection;
class Client : public ceph::net::Dispatcher,
- public ceph::common::AuthService,
public ceph::auth::AuthClient,
public ceph::auth::AuthServer
{
void sub_unwant(const std::string& what);
bool sub_want_increment(const std::string& what, version_t start, unsigned flags);
seastar::future<> renew_subs();
- // AuthService methods
- AuthAuthorizer* get_authorizer(peer_type_t peer) const override;
private:
// AuthServer methods
seastar::future<> ms_dispatch(ceph::net::Connection* 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::Connection* conn,
Ref<MMonMap> m);
bufferlist&) {
return seastar::make_ready_future<msgr_tag_t, bufferlist>(0, bufferlist{});
}
- virtual AuthAuthorizer* ms_get_authorizer(peer_type_t) const {
- return nullptr;
- }
// get the local dispatcher shard if it is accessed by another core
virtual Dispatcher* get_local_shard() {
return dispatcher->ms_handle_remote_reset(conn);
});
}
-
-AuthAuthorizer*
-ChainedDispatchers::ms_get_authorizer(peer_type_t peer_type) const
-{
- // since dispatcher returns a nullptr if it does not have the authorizer,
- // let's use the chain-of-responsibility pattern here.
- for (auto dispatcher : dispatchers) {
- if (auto auth = dispatcher->ms_get_authorizer(peer_type); auth) {
- return auth;
- }
- }
- // just give up
- return nullptr;
-}
seastar::future<> ms_handle_connect(ceph::net::ConnectionRef conn) override;
seastar::future<> ms_handle_reset(ceph::net::ConnectionRef conn) override;
seastar::future<> ms_handle_remote_reset(ceph::net::ConnectionRef conn) override;
- AuthAuthorizer* ms_get_authorizer(peer_type_t peer_type) const override;
};
#include "messages/MOSDPing.h"
#include "messages/MOSDFailure.h"
-#include "crimson/common/auth_service.h"
#include "crimson/common/config_proxy.h"
#include "crimson/net/Connection.h"
#include "crimson/net/Messenger.h"
return seastar::now();
}
-AuthAuthorizer* Heartbeat::ms_get_authorizer(peer_type_t peer) const
-{
- return monc.get_authorizer(peer);
-}
-
seastar::future<> Heartbeat::send_heartbeats()
{
using peers_item_t = typename peers_map_t::value_type;
seastar::future<> ms_dispatch(ceph::net::Connection* conn,
MessageRef m) override;
seastar::future<> ms_handle_reset(ceph::net::ConnectionRef conn) override;
- AuthAuthorizer* ms_get_authorizer(peer_type_t peer) const override;
private:
seastar::future<> handle_osd_ping(ceph::net::Connection* conn,
return seastar::make_ready_future<ceph::net::msgr_tag_t, bufferlist>(
0, bufferlist{});
}
- std::unique_ptr<AuthAuthorizer> authorizer = std::make_unique<DummyAuthAuthorizer>();
- AuthAuthorizer* ms_get_authorizer(peer_type_t) const override {
- return authorizer.get();
- }
} dispatcher;
Server(ceph::net::Messenger& msgr)
: byte_throttler(ceph::net::conf.osd_client_message_size_cap),