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 {
19 public:
20 /// Function to call to parse Authorization header directives.
21 ContextFromClient ParseAuthInfo(std::string_view auth_header_value);
22
23 private:
24 void PushToClientContext(std::string&& directive, std::string&& value,
25 ContextFromClient& client_context);
26 void CheckMandatoryDirectivesPresent() const;
27 void CheckDuplicateDirectivesExist() const;
28
29 std::array<std::size_t, kMaxClientDirectivesNumber> directives_counter_{};
30};
31
32} // namespace server::handlers::auth::digest
33
34USERVER_NAMESPACE_END