userver: userver/server/handlers/auth/digest/directives_parser.hpp Source File
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
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