userver: s3api::authenticators::SignatureV4 Class Reference
Loading...
Searching...
No Matches
s3api::authenticators::SignatureV4 Class Reference

#include <userver/s3api/authenticators/signature_v4.hpp>

Detailed Description

Authenticator implementing AWS Signature Version 4.

Auth signs a request with headers (Authorization, X-Amz-Date, X-Amz-Content-Sha256), Sign produces query parameters for a presigned URL (X-Amz-Algorithm, X-Amz-Credential, X-Amz-Date, X-Amz-Expires, X-Amz-SignedHeaders, X-Amz-Signature).

See https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html

Definition at line 25 of file signature_v4.hpp.

Inheritance diagram for s3api::authenticators::SignatureV4:

Public Member Functions

 SignatureV4 (std::string access_key, Secret secret_key, std::string region, std::string service="s3")
std::unordered_map< std::string, std::string > Auth (const Request &request) const override
std::unordered_map< std::string, std::string > Sign (const Request &request, std::time_t expires) const override

Constructor & Destructor Documentation

◆ SignatureV4()

s3api::authenticators::SignatureV4::SignatureV4 ( std::string access_key,
Secret secret_key,
std::string region,
std::string service = "s3" )
inline

Definition at line 27 of file signature_v4.hpp.

Member Function Documentation

◆ Auth()

std::unordered_map< std::string, std::string > s3api::authenticators::SignatureV4::Auth ( const Request & request) const
overridevirtual

Implements s3api::authenticators::Authenticator.

Definition at line 306 of file signature_v4.cpp.

◆ Sign()

std::unordered_map< std::string, std::string > s3api::authenticators::SignatureV4::Sign ( const Request & request,
std::time_t expires ) const
overridevirtual
Note
expires is an absolute unix timestamp of the moment the presigned URL stops being valid, the same way as in AccessKey::Sign. It is converted to the X-Amz-Expires duration relative to the current time.

Implements s3api::authenticators::Authenticator.

Definition at line 342 of file signature_v4.cpp.


The documentation for this class was generated from the following files: