RESTinio
Namespaces | Classes | Enumerations | Functions
restinio::http_field_parsers::basic_auth Namespace Reference

Namespaces

 impl
 

Classes

struct  params_t
 Parameters for basic authentification. More...
 

Enumerations

enum  extraction_error_t {
  extraction_error_t::no_auth_http_field, extraction_error_t::illegal_http_field_value, extraction_error_t::not_basic_auth_scheme, extraction_error_t::invalid_basic_auth_param,
  extraction_error_t::token68_decode_error, extraction_error_t::invalid_username_password_pair, extraction_error_t::empty_username
}
 Error codes for failures of extraction of basic authentification parameters. More...
 

Functions

RESTINIO_NODISCARD string_view_t to_string_view (extraction_error_t what) noexcept
 Helper function to get a string name of extraction_error enum. More...
 
RESTINIO_NODISCARD expected_t< params_t, extraction_error_ttry_extract_params (const authorization_value_t &http_field)
 Helper function for getting parameters of basic authentification from an already parsed HTTP-field. More...
 
RESTINIO_NODISCARD expected_t< params_t, extraction_error_ttry_extract_params (const http_header_fields_t &fields, string_view_t auth_field_name)
 Helper function for getting parameters of basic authentification from a set of HTTP-fields. More...
 
RESTINIO_NODISCARD expected_t< params_t, extraction_error_ttry_extract_params (const request_t &req, string_view_t auth_field_name)
 Helper function for getting parameters of basic authentification from a request. More...
 
RESTINIO_NODISCARD expected_t< params_t, extraction_error_ttry_extract_params (const http_header_fields_t &fields, http_field_t auth_field_id)
 Helper function for getting parameters of basic authentification from a set of HTTP-fields. More...
 
RESTINIO_NODISCARD expected_t< params_t, extraction_error_ttry_extract_params (const request_t &req, http_field_t auth_field_id)
 Helper function for getting parameters of basic authentification from a request. More...
 

Enumeration Type Documentation

◆ extraction_error_t

Error codes for failures of extraction of basic authentification parameters.

Since
v.0.6.7
Enumerator
no_auth_http_field 

There is no HTTP field with authentification parameters.

illegal_http_field_value 

The HTTP field with authentification parameters can't be parsed.

not_basic_auth_scheme 

Different authentification scheme found. Basic authentification scheme is expected.

invalid_basic_auth_param 

Invalid value of parameter for basic authentification scheme. The single parameter in the form of token68 is expected.

token68_decode_error 

Value of token68 parameter for basic authentification can't be decoded.

invalid_username_password_pair 

Wrong format for username:password in decoded token68 parameter. Maybe there is no colon symbol.

empty_username 

Empty user name in username:password pair.

Definition at line 65 of file basic_auth.hpp.

Function Documentation

◆ to_string_view()

RESTINIO_NODISCARD string_view_t restinio::http_field_parsers::basic_auth::to_string_view ( extraction_error_t  what)
inlinenoexcept

Helper function to get a string name of extraction_error enum.

Since
v.0.6.9

Definition at line 99 of file basic_auth.hpp.

◆ try_extract_params() [1/5]

RESTINIO_NODISCARD expected_t< params_t, extraction_error_t > restinio::http_field_parsers::basic_auth::try_extract_params ( const authorization_value_t http_field)
inline

Helper function for getting parameters of basic authentification from an already parsed HTTP-field.

Attention
This function doesn't check the content of authorization_value_t::auth_scheme. It's expected that this field was checked earlier.

Usage example:

auto on_request(restinio::request_handle_t & req) {
const auto opt_field = req.header().opt_value_of(
restinio::http_field::authorization);
if(opt_field) {
const auto parsed_field = authorization_value_t::try_parse(*opt_field);
if(parsed_field) {
if("basic" == parsed_field->auth_scheme) {
const auto basic_params = try_extract_params(*parsed_field);
if(basic_params) {
const std::string & username = auth_params->username;
const std::string & password = auth_params->password;
... // Do something with username and password.
}
}
else if("bearer" == parsed_field->auth_scheme) {
... // Dealing with bearer authentification.
}
else {
... // Other authentification schemes.
}
}
}
...
}
Since
v.0.6.8

Definition at line 183 of file basic_auth.hpp.

◆ try_extract_params() [2/5]

RESTINIO_NODISCARD expected_t< params_t, extraction_error_t > restinio::http_field_parsers::basic_auth::try_extract_params ( const http_header_fields_t fields,
http_field_t  auth_field_id 
)
inline

Helper function for getting parameters of basic authentification from a set of HTTP-fields.

Usage example:

auto check_authorization(const restinio::http_header_fields_t & fields) {
const auto auth_params = try_extract_params(
fields, restinio::http_field::authorization);
if(auth_params) {
const std::string & username = auth_params->username;
const std::string & password = auth_params->password;
... // Do something with username and password.
}
...
}
Since
v.0.6.9
Parameters
fieldsA set of HTTP-fields.
auth_field_idThe ID of a HTTP-field with authentification parameters.

Definition at line 327 of file basic_auth.hpp.

◆ try_extract_params() [3/5]

RESTINIO_NODISCARD expected_t< params_t, extraction_error_t > restinio::http_field_parsers::basic_auth::try_extract_params ( const http_header_fields_t fields,
string_view_t  auth_field_name 
)
inline

Helper function for getting parameters of basic authentification from a set of HTTP-fields.

This helper function is intended to be used for cases when authentification parameters are stored inside a HTTP-field with a custom name. For example:

auto check_authorization(const restinio::http_header_fields_t & fields) {
const auto auth_params = try_extract_params(fields, "X-My-Authorization");
if(auth_params) {
const std::string & username = auth_params->username;
const std::string & password = auth_params->password;
... // Do something with username and password.
}
...
}
Since
v.0.6.9
Parameters
fieldsA set of HTTP-fields.
auth_field_nameThe name of a HTTP-field with authentification parameters.

Definition at line 261 of file basic_auth.hpp.

◆ try_extract_params() [4/5]

RESTINIO_NODISCARD expected_t< params_t, extraction_error_t > restinio::http_field_parsers::basic_auth::try_extract_params ( const request_t req,
http_field_t  auth_field_id 
)
inline

Helper function for getting parameters of basic authentification from a request.

Usage example:

auto on_request(restinio::request_handle_t & req) {
const auto auth_params = try_extract_params(
*req, restinio::http_field::authorization);
if(auth_params) {
const std::string & username = auth_params->username;
const std::string & password = auth_params->password;
... // Do something with username and password.
}
...
}
Since
v.0.6.7
Parameters
reqA request that should hold a HTTP-field with authentification parameters.
auth_field_idThe ID of a HTTP-field with authentification parameters.

Definition at line 360 of file basic_auth.hpp.

◆ try_extract_params() [5/5]

RESTINIO_NODISCARD expected_t< params_t, extraction_error_t > restinio::http_field_parsers::basic_auth::try_extract_params ( const request_t req,
string_view_t  auth_field_name 
)
inline

Helper function for getting parameters of basic authentification from a request.

This helper function is intended to be used for cases when authentification parameters are stored inside a HTTP-field with a custom name. For example:

auto on_request(restinio::request_handle_t & req) {
const auto auth_params = try_extract_params(*req, "X-My-Authorization");
if(auth_params) {
const std::string & username = auth_params->username;
const std::string & password = auth_params->password;
... // Do something with username and password.
}
...
}
Since
v.0.6.7
Parameters
reqA request that should hold a HTTP-field with authentification parameters.
auth_field_nameThe name of a HTTP-field with authentification parameters.

Definition at line 294 of file basic_auth.hpp.

restinio::http_field_parsers
Definition: accept-charset.hpp:20
restinio::http_header_fields_t
Header fields map.
Definition: http_headers.hpp:703
restinio::http_field_parsers::basic_auth::try_extract_params
RESTINIO_NODISCARD expected_t< params_t, extraction_error_t > try_extract_params(const authorization_value_t &http_field)
Helper function for getting parameters of basic authentification from an already parsed HTTP-field.
Definition: basic_auth.hpp:183
restinio::http_field_parsers::authorization_value_t::try_parse
static RESTINIO_NODISCARD expected_t< authorization_value_t, restinio::easy_parser::parse_error_t > try_parse(string_view_t what)
An attempt to parse Authorization HTTP-field.
Definition: authorization.hpp:239
restinio::request_handle_t
std::shared_ptr< request_t > request_handle_t
Request handler, that is the type for calling request handlers.
Definition: request_handler.hpp:182
restinio::http_field_parsers::basic_auth
Definition: basic_auth.hpp:31