userver
C++ Async Framework
Loading...
Searching...
No Matches
auth_checker_base.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/server/handlers/auth/auth_checker_base.hpp
4
/// @brief @copybrief server::handlers::auth::AuthCheckerBase
5
6
#
include
<
memory
>
7
#
include
<
optional
>
8
#
include
<
string
>
9
10
#
include
<
userver
/
server
/
auth
/
user_auth_info
.
hpp
>
11
#
include
<
userver
/
server
/
handlers
/
exceptions
.
hpp
>
12
#
include
<
userver
/
server
/
http
/
http_request
.
hpp
>
13
#
include
<
userver
/
server
/
request
/
request_context
.
hpp
>
14
15
USERVER_NAMESPACE_BEGIN
16
17
namespace
server::
handlers
::auth {
18
19
struct
AuthCheckResult
{
20
enum
class
Status { kTokenNotFound, kInternalCheckFailure, kInvalidToken, kForbidden, kOk };
21
22
Status status{Status::kOk};
23
std::optional<std::string> reason{};
24
std::optional<std::string> ext_reason{};
25
std::optional<
HandlerErrorCode
> code{};
26
};
27
28
const
std::string& GetDefaultReasonForStatus(
AuthCheckResult
::Status status);
29
void
RaiseForStatus(
const
AuthCheckResult
& auth_check);
30
31
/// @brief Base class for HTTP handler authentication checkers
32
class
AuthCheckerBase
{
33
public
:
34
virtual
~AuthCheckerBase();
35
36
[[
nodiscard
]]
virtual
AuthCheckResult
CheckAuth(
const
http
::HttpRequest& request,
request
::RequestContext& context)
37
const
= 0;
38
39
[[
nodiscard
]]
virtual
bool
SupportsUserAuth()
const
noexcept
= 0;
40
41
protected
:
42
void
SetUserAuthInfo(server::
request
::RequestContext& request_context, server::auth::UserAuthInfo&& info)
const
;
43
};
44
45
using
AuthCheckerBasePtr = std::shared_ptr<
AuthCheckerBase
>;
46
47
}
// namespace server::handlers::auth
48
49
USERVER_NAMESPACE_END
userver
server
handlers
auth
auth_checker_base.hpp
Generated on Thu May 21 2026 16:19:11 for userver by
Doxygen
1.13.2