diff options
author | Vitalii Gridnev <gridnevvvit@gmail.com> | 2022-02-10 16:47:23 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:47:23 +0300 |
commit | 30ed3937ab02d1b3c4dec4d93fb86c683217d9be (patch) | |
tree | 40cf6aa8b6b8223a09b185010d80f212e28b74f0 /library/cpp/monlib/service/auth/tvm | |
parent | 64de01e9a049f96a9e2d43aff48d10621ab47d81 (diff) | |
download | ydb-30ed3937ab02d1b3c4dec4d93fb86c683217d9be.tar.gz |
Restoring authorship annotation for Vitalii Gridnev <gridnevvvit@gmail.com>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/monlib/service/auth/tvm')
-rw-r--r-- | library/cpp/monlib/service/auth/tvm/auth.cpp | 184 | ||||
-rw-r--r-- | library/cpp/monlib/service/auth/tvm/auth.h | 64 | ||||
-rw-r--r-- | library/cpp/monlib/service/auth/tvm/ya.make | 28 |
3 files changed, 138 insertions, 138 deletions
diff --git a/library/cpp/monlib/service/auth/tvm/auth.cpp b/library/cpp/monlib/service/auth/tvm/auth.cpp index e071c11ebc..2a992adf50 100644 --- a/library/cpp/monlib/service/auth/tvm/auth.cpp +++ b/library/cpp/monlib/service/auth/tvm/auth.cpp @@ -1,93 +1,93 @@ -#include "auth.h" - -#include <util/generic/hash_set.h> - - -using namespace NTvmAuth; - - -namespace NMonitoring { -namespace { - template <class TTvmClientPtr = THolder<TTvmClient>> - class TTvmManager final: public ITvmManager { - public: - TTvmManager(NTvmApi::TClientSettings settings, TVector<TTvmId> clients, TLoggerPtr logger) - : AllowedClients_{clients.begin(), clients.end()} - , Tvm_(new TTvmClient{std::move(settings), std::move(logger)}) - { - } - - TTvmManager(NTvmTool::TClientSettings settings, TVector<TTvmId> clients, TLoggerPtr logger) - : AllowedClients_{clients.begin(), clients.end()} - , Tvm_(new TTvmClient{std::move(settings), std::move(logger)}) - { - } - - TTvmManager(TTvmClientPtr tvm, TVector<TTvmId> clients) - : AllowedClients_{clients.begin(), clients.end()} - , Tvm_(std::move(tvm)) - { - } - - bool IsAllowedClient(TTvmId clientId) override { - return AllowedClients_.contains(clientId); - } - +#include "auth.h" + +#include <util/generic/hash_set.h> + + +using namespace NTvmAuth; + + +namespace NMonitoring { +namespace { + template <class TTvmClientPtr = THolder<TTvmClient>> + class TTvmManager final: public ITvmManager { + public: + TTvmManager(NTvmApi::TClientSettings settings, TVector<TTvmId> clients, TLoggerPtr logger) + : AllowedClients_{clients.begin(), clients.end()} + , Tvm_(new TTvmClient{std::move(settings), std::move(logger)}) + { + } + + TTvmManager(NTvmTool::TClientSettings settings, TVector<TTvmId> clients, TLoggerPtr logger) + : AllowedClients_{clients.begin(), clients.end()} + , Tvm_(new TTvmClient{std::move(settings), std::move(logger)}) + { + } + + TTvmManager(TTvmClientPtr tvm, TVector<TTvmId> clients) + : AllowedClients_{clients.begin(), clients.end()} + , Tvm_(std::move(tvm)) + { + } + + bool IsAllowedClient(TTvmId clientId) override { + return AllowedClients_.contains(clientId); + } + TCheckedServiceTicket CheckServiceTicket(TStringBuf ticket) override { - return Tvm_->CheckServiceTicket(ticket); - } - - private: - THashSet<TTvmId> AllowedClients_; - TTvmClientPtr Tvm_; - }; - - class TTvmAuthProvider final: public IAuthProvider { - public: - TTvmAuthProvider(THolder<ITvmManager> manager) - : TvmManager_{std::move(manager)} - { - } - - TAuthResult Check(const IHttpRequest& req) override { - auto ticketHeader = req.GetHeaders().FindHeader("X-Ya-Service-Ticket"); - if (!ticketHeader) { - return TAuthResult::NoCredentials(); - } - - const auto ticket = TvmManager_->CheckServiceTicket(ticketHeader->Value()); - if (!ticket) { - return TAuthResult::Denied(); - } - - return TvmManager_->IsAllowedClient(ticket.GetSrc()) - ? TAuthResult::Ok() - : TAuthResult::Denied(); - } - - private: - THolder<ITvmManager> TvmManager_; - }; -} // namespace - -THolder<ITvmManager> CreateDefaultTvmManager(NTvmApi::TClientSettings settings, TVector<TTvmId> allowedClients, TLoggerPtr logger) { - return MakeHolder<TTvmManager<>>(std::move(settings), std::move(allowedClients), std::move(logger)); -} - -THolder<ITvmManager> CreateDefaultTvmManager(NTvmTool::TClientSettings settings, TVector<TTvmId> allowedClients, TLoggerPtr logger) { - return MakeHolder<TTvmManager<>>(std::move(settings), std::move(allowedClients), std::move(logger)); -} - -THolder<ITvmManager> CreateDefaultTvmManager(TAtomicSharedPtr<NTvmAuth::TTvmClient> client, TVector<TTvmId> allowedClients) { - return MakeHolder<TTvmManager<TAtomicSharedPtr<NTvmAuth::TTvmClient>>>(std::move(client), std::move(allowedClients)); -} - -THolder<ITvmManager> CreateDefaultTvmManager(std::shared_ptr<NTvmAuth::TTvmClient> client, TVector<TTvmId> allowedClients) { - return MakeHolder<TTvmManager<std::shared_ptr<NTvmAuth::TTvmClient>>>(std::move(client), std::move(allowedClients)); -} - -THolder<IAuthProvider> CreateTvmAuth(THolder<ITvmManager> manager) { - return MakeHolder<TTvmAuthProvider>(std::move(manager)); -} - -} // namespace NMonitoring + return Tvm_->CheckServiceTicket(ticket); + } + + private: + THashSet<TTvmId> AllowedClients_; + TTvmClientPtr Tvm_; + }; + + class TTvmAuthProvider final: public IAuthProvider { + public: + TTvmAuthProvider(THolder<ITvmManager> manager) + : TvmManager_{std::move(manager)} + { + } + + TAuthResult Check(const IHttpRequest& req) override { + auto ticketHeader = req.GetHeaders().FindHeader("X-Ya-Service-Ticket"); + if (!ticketHeader) { + return TAuthResult::NoCredentials(); + } + + const auto ticket = TvmManager_->CheckServiceTicket(ticketHeader->Value()); + if (!ticket) { + return TAuthResult::Denied(); + } + + return TvmManager_->IsAllowedClient(ticket.GetSrc()) + ? TAuthResult::Ok() + : TAuthResult::Denied(); + } + + private: + THolder<ITvmManager> TvmManager_; + }; +} // namespace + +THolder<ITvmManager> CreateDefaultTvmManager(NTvmApi::TClientSettings settings, TVector<TTvmId> allowedClients, TLoggerPtr logger) { + return MakeHolder<TTvmManager<>>(std::move(settings), std::move(allowedClients), std::move(logger)); +} + +THolder<ITvmManager> CreateDefaultTvmManager(NTvmTool::TClientSettings settings, TVector<TTvmId> allowedClients, TLoggerPtr logger) { + return MakeHolder<TTvmManager<>>(std::move(settings), std::move(allowedClients), std::move(logger)); +} + +THolder<ITvmManager> CreateDefaultTvmManager(TAtomicSharedPtr<NTvmAuth::TTvmClient> client, TVector<TTvmId> allowedClients) { + return MakeHolder<TTvmManager<TAtomicSharedPtr<NTvmAuth::TTvmClient>>>(std::move(client), std::move(allowedClients)); +} + +THolder<ITvmManager> CreateDefaultTvmManager(std::shared_ptr<NTvmAuth::TTvmClient> client, TVector<TTvmId> allowedClients) { + return MakeHolder<TTvmManager<std::shared_ptr<NTvmAuth::TTvmClient>>>(std::move(client), std::move(allowedClients)); +} + +THolder<IAuthProvider> CreateTvmAuth(THolder<ITvmManager> manager) { + return MakeHolder<TTvmAuthProvider>(std::move(manager)); +} + +} // namespace NMonitoring diff --git a/library/cpp/monlib/service/auth/tvm/auth.h b/library/cpp/monlib/service/auth/tvm/auth.h index 432beff9d6..8a8db2dc67 100644 --- a/library/cpp/monlib/service/auth/tvm/auth.h +++ b/library/cpp/monlib/service/auth/tvm/auth.h @@ -1,33 +1,33 @@ -#pragma once - -#include <library/cpp/monlib/service/mon_service_http_request.h> -#include <library/cpp/monlib/service/auth.h> -#include <library/cpp/tvmauth/client/facade.h> - -namespace NMonitoring { - struct ITvmManager { - virtual ~ITvmManager() = default; - virtual bool IsAllowedClient(NTvmAuth::TTvmId clientId) = 0; +#pragma once + +#include <library/cpp/monlib/service/mon_service_http_request.h> +#include <library/cpp/monlib/service/auth.h> +#include <library/cpp/tvmauth/client/facade.h> + +namespace NMonitoring { + struct ITvmManager { + virtual ~ITvmManager() = default; + virtual bool IsAllowedClient(NTvmAuth::TTvmId clientId) = 0; virtual NTvmAuth::TCheckedServiceTicket CheckServiceTicket(TStringBuf ticket) = 0; - }; - - THolder<ITvmManager> CreateDefaultTvmManager( - NTvmAuth::NTvmApi::TClientSettings settings, - TVector<NTvmAuth::TTvmId> allowedClients, - NTvmAuth::TLoggerPtr logger = NTvmAuth::TDevNullLogger::IAmBrave()); - - THolder<ITvmManager> CreateDefaultTvmManager( - NTvmAuth::NTvmTool::TClientSettings settings, - TVector<NTvmAuth::TTvmId> allowedClients, - NTvmAuth::TLoggerPtr logger = NTvmAuth::TDevNullLogger::IAmBrave()); - - THolder<ITvmManager> CreateDefaultTvmManager( - TAtomicSharedPtr<NTvmAuth::TTvmClient> client, - TVector<NTvmAuth::TTvmId> allowedClients); - - THolder<ITvmManager> CreateDefaultTvmManager( - std::shared_ptr<NTvmAuth::TTvmClient> client, - TVector<NTvmAuth::TTvmId> allowedClients); - - THolder<IAuthProvider> CreateTvmAuth(THolder<ITvmManager> tvmManager); -} // namespace NMonitoring + }; + + THolder<ITvmManager> CreateDefaultTvmManager( + NTvmAuth::NTvmApi::TClientSettings settings, + TVector<NTvmAuth::TTvmId> allowedClients, + NTvmAuth::TLoggerPtr logger = NTvmAuth::TDevNullLogger::IAmBrave()); + + THolder<ITvmManager> CreateDefaultTvmManager( + NTvmAuth::NTvmTool::TClientSettings settings, + TVector<NTvmAuth::TTvmId> allowedClients, + NTvmAuth::TLoggerPtr logger = NTvmAuth::TDevNullLogger::IAmBrave()); + + THolder<ITvmManager> CreateDefaultTvmManager( + TAtomicSharedPtr<NTvmAuth::TTvmClient> client, + TVector<NTvmAuth::TTvmId> allowedClients); + + THolder<ITvmManager> CreateDefaultTvmManager( + std::shared_ptr<NTvmAuth::TTvmClient> client, + TVector<NTvmAuth::TTvmId> allowedClients); + + THolder<IAuthProvider> CreateTvmAuth(THolder<ITvmManager> tvmManager); +} // namespace NMonitoring diff --git a/library/cpp/monlib/service/auth/tvm/ya.make b/library/cpp/monlib/service/auth/tvm/ya.make index 4437a65b62..9f0cb8b3a9 100644 --- a/library/cpp/monlib/service/auth/tvm/ya.make +++ b/library/cpp/monlib/service/auth/tvm/ya.make @@ -1,14 +1,14 @@ -LIBRARY() - -OWNER(g:solomon) - -SRCS( - auth.cpp -) - -PEERDIR( - library/cpp/tvmauth/client - library/cpp/monlib/service -) - -END() +LIBRARY() + +OWNER(g:solomon) + +SRCS( + auth.cpp +) + +PEERDIR( + library/cpp/tvmauth/client + library/cpp/monlib/service +) + +END() |