userver: userver/server/handlers/auth/auth_checker_factory.hpp Source File
Loading...
Searching...
No Matches
auth_checker_factory.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/server/handlers/auth/auth_checker_factory.hpp
4/// @brief Authorization factory registration and base classes.
5
6#include <userver/components/component_context.hpp>
7#include <userver/server/handlers/auth/auth_checker_base.hpp>
8#include <userver/server/handlers/auth/auth_checker_settings.hpp>
9#include <userver/server/handlers/handler_config.hpp>
10
11USERVER_NAMESPACE_BEGIN
12
13namespace server::handlers::auth {
14
15/// Base class for all the authorization factory checkers
17public:
18 virtual ~AuthCheckerFactoryBase() = default;
19
20 virtual AuthCheckerBasePtr
21 operator()(const components::ComponentContext&, const HandlerAuthConfig&, const AuthCheckerSettings&) const = 0;
22};
23
24/// Function to call from main() to register an authorization checker
25void RegisterAuthCheckerFactory(std::string auth_type, std::unique_ptr<AuthCheckerFactoryBase>&& factory);
26
27/// Function that returns an authorization checker factory
28const AuthCheckerFactoryBase& GetAuthCheckerFactory(const std::string& auth_type);
29
30} // namespace server::handlers::auth
31
32USERVER_NAMESPACE_END