22#include "util/newconfig/ConfigDefinition.hpp"
24#include <boost/beast/http.hpp>
25#include <boost/beast/http/message.hpp>
26#include <boost/beast/http/string_body.hpp>
41 using RequestHeader = boost::beast::http::request<boost::beast::http::string_body>::header_type;
52 isAdmin(RequestHeader
const& request, std::string_view ip)
const = 0;
68 isAdmin(RequestHeader
const&, std::string_view ip)
const override;
76 std::string passwordSha256_;
99 isAdmin(RequestHeader
const& request, std::string_view)
const override;
109std::shared_ptr<AdminVerificationStrategy>
118std::expected<std::shared_ptr<AdminVerificationStrategy>, std::string>
All the config data will be stored and extracted from this class.
Definition ConfigDefinition.hpp:54
Interface for admin verification strategies.
Definition AdminVerificationStrategy.hpp:39
virtual bool isAdmin(RequestHeader const &request, std::string_view ip) const =0
Checks whether request is from a host that is considered authorized as admin.
Admin verification strategy that checks the ip address of the client.
Definition AdminVerificationStrategy.hpp:58
bool isAdmin(RequestHeader const &, std::string_view ip) const override
Checks whether request is from a host that is considered authorized as admin by checking the ip addre...
Definition AdminVerificationStrategy.cpp:39
Admin verification strategy that checks the password from the request header.
Definition AdminVerificationStrategy.hpp:74
bool isAdmin(RequestHeader const &request, std::string_view) const override
Checks whether request is from a host that is considered authorized as admin using the password (if a...
Definition AdminVerificationStrategy.cpp:57
PasswordAdminVerificationStrategy(std::string const &password)
Construct a new PasswordAdminVerificationStrategy object.
Definition AdminVerificationStrategy.cpp:44
static constexpr std::string_view kPASSWORD_PREFIX
The prefix for the password in the request header.
Definition AdminVerificationStrategy.hpp:82
This namespace implements the web server and related components.
Definition Types.hpp:43
std::shared_ptr< AdminVerificationStrategy > makeAdminVerificationStrategy(std::optional< std::string > password)
Factory function for creating an admin verification strategy.
Definition AdminVerificationStrategy.cpp:75