userver
C++ Async Framework
Toggle main menu visibility
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/digest/auth_checker_factory.hpp
4
/// @brief Reusable factories for server-side HTTP Digest authentication.
5
6
#
include
<
memory
>
7
#
include
<
string
>
8
#
include
<
string_view
>
9
10
#
include
<
userver
/
components
/
component_context
.
hpp
>
11
#
include
<
userver
/
server
/
handlers
/
auth
/
auth_checker_factory
.
hpp
>
12
#
include
<
userver
/
server
/
handlers
/
auth
/
digest
/
auth_checker_base
.
hpp
>
13
#
include
<
userver
/
server
/
handlers
/
auth
/
digest
/
auth_checker_settings_component
.
hpp
>
14
#
include
<
userver
/
server
/
handlers
/
auth
/
digest
/
nonce_cache_settings_component
.
hpp
>
15
#
include
<
userver
/
server
/
handlers
/
auth
/
digest
/
standalone_checker
.
hpp
>
16
#
include
<
userver
/
storages
/
secdist
/
secdist
.
hpp
>
17
18
USERVER_NAMESPACE_BEGIN
19
20
namespace
server::
handlers
::auth::digest {
21
22
/// @brief Factory base that owns the common Digest checker configuration wiring.
23
class
AuthCheckerFactoryBase
:
public
auth::
AuthCheckerFactoryBase
{
24
public
:
25
explicit
AuthCheckerFactoryBase(
26
const
components
::ComponentContext& context,
27
std::string_view settings_component_name =
AuthCheckerSettingsComponent
::
kName
28
);
29
30
auth::AuthCheckerBasePtr MakeAuthChecker(
const
HandlerAuthConfig& auth_config)
const
final
;
31
32
protected
:
33
virtual
std::shared_ptr<
AuthCheckerBase
> MakeDigestAuthChecker(
34
const
HandlerAuthConfig& auth_config,
35
std::string realm,
36
const
AuthCheckerSettings
& settings,
37
const
SecdistConfig& secdist
38
)
const
= 0;
39
40
private
:
41
const
AuthCheckerSettings
& settings_;
42
storages::secdist::Secdist& secdist_;
43
};
44
45
/// @brief Factory base for Digest checkers that keep nonce state in memory.
46
class
AuthStandaloneCheckerFactoryBase
:
public
AuthCheckerFactoryBase
{
47
public
:
48
explicit
AuthStandaloneCheckerFactoryBase(
49
const
components
::ComponentContext& context,
50
std::string_view settings_component_name = NonceCacheSettingsComponent
::
kName
51
);
52
53
protected
:
54
virtual
std::shared_ptr<
AuthStandaloneCheckerBase
> MakeStandaloneDigestAuthChecker(
55
const
HandlerAuthConfig& auth_config,
56
std::string realm,
57
const
AuthCheckerSettings
& settings,
58
const
SecdistConfig& secdist,
59
const
NonceCacheSettings
& nonce_cache_settings
60
)
const
= 0;
61
62
private
:
63
std::shared_ptr<
AuthCheckerBase
> MakeDigestAuthChecker(
64
const
HandlerAuthConfig& auth_config,
65
std::string realm,
66
const
AuthCheckerSettings
& settings,
67
const
SecdistConfig& secdist
68
)
const
final
;
69
70
const
NonceCacheSettings
& nonce_cache_settings_;
71
};
72
73
}
// namespace server::handlers::auth::digest
74
75
USERVER_NAMESPACE_END
userver
server
handlers
auth
digest
auth_checker_factory.hpp
Generated on
for userver by
Doxygen
1.17.0