userver: userver/server/handlers/auth/digest/directives_parser.hpp Source File
Loading...
Searching...
No Matches
directives_parser.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/server/handlers/auth/digest/directives_parser.hpp
4/// @brief @copybrief server::handlers::auth::digest::Parser
5
6#include <array>
7#include <string>
8#include <string_view>
9
10#include "context.hpp"
11
12USERVER_NAMESPACE_BEGIN
13
14namespace server::handlers::auth::digest {
15
16/// @brief Class for parsing Authorization header directives from client
17/// request.
18class Parser final {
19public:
20 /// Function to call to parse Authorization header directives.
21 ContextFromClient ParseAuthInfo(std::string_view auth_header_value);
22
23private:
24 void PushToClientContext(std::string&& directive, std::string&& value, ContextFromClient& client_context);
25 void CheckMandatoryDirectivesPresent() const;
26 void CheckDuplicateDirectivesExist() const;
27
28 std::array<std::size_t, kMaxClientDirectivesNumber> directives_counter_{};
29};
30
31} // namespace server::handlers::auth::digest
32
33USERVER_NAMESPACE_END