userver: userver/s3api/authenticators/interface.hpp Source File
Loading...
Searching...
No Matches
interface.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file userver/s3api/authenticators/interface.hpp
4/// @brief @copybrief s3api::authenticators::Authenticator
5
6#include <ctime>
7#include <memory>
8#include <string>
9#include <unordered_map>
10
11USERVER_NAMESPACE_BEGIN
12
13namespace s3api {
14
15struct Request;
16
17namespace authenticators {
18
19/// @ingroup userver_base_classes
20///
21/// @brief Base class for all authenticators - classes that sign the request with auth data
23 virtual std::unordered_map<std::string, std::string> Auth(const Request& request) const = 0;
24 virtual std::unordered_map<std::string, std::string> Sign(const Request& request, time_t expires) const = 0;
25 virtual ~Authenticator() = default;
26};
27
28using AuthenticatorPtr = std::shared_ptr<Authenticator>;
29
30} // namespace authenticators
31} // namespace s3api
32
33USERVER_NAMESPACE_END