SNode.C
Loading...
Searching...
No Matches
express::middleware::BasicAuthentication Class Reference

#include <BasicAuthentication.h>

Inheritance diagram for express::middleware::BasicAuthentication:
Collaboration diagram for express::middleware::BasicAuthentication:

Protected Member Functions

 BasicAuthentication (const std::string &userName, const std::string &password, const std::string &realm)
 

Static Protected Member Functions

static class BasicAuthenticationinstance (const std::string &userName, const std::string &password, const std::string &realm)
 

Friends

class BasicAuthenticationBasicAuthentication (const std::string &userName, const std::string &password, const std::string &realm)
 

Additional Inherited Members

- Public Member Functions inherited from express::Router
 Router ()
 
 Router (const Router &)=default
 
void laxRouting (bool strict=false)
 
Routeuse (const Router &router) const
 
Routeuse (const std::string &relativeMountPath, const Router &router) const
 
Routeuse (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routeuse (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routeuse (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
Routeuse (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
template<typename... Lambdas>
Routeuse (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeuse (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeuse (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeuse (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
Routeall (const Router &router) const
 
Routeall (const std::string &relativeMountPath, const Router &router) const
 
Routeall (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routeall (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routeall (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
Routeall (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
template<typename... Lambdas>
Routeall (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeall (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeall (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeall (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
Routeget (const Router &router) const
 
Routeget (const std::string &relativeMountPath, const Router &router) const
 
Routeget (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routeget (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routeget (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
Routeget (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
template<typename... Lambdas>
Routeget (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeget (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeget (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeget (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
Routeput (const Router &router) const
 
Routeput (const std::string &relativeMountPath, const Router &router) const
 
Routeput (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routeput (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routeput (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
Routeput (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
template<typename... Lambdas>
Routeput (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeput (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeput (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeput (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
Routepost (const Router &router) const
 
Routepost (const std::string &relativeMountPath, const Router &router) const
 
Routepost (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routepost (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routepost (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
Routepost (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
template<typename... Lambdas>
Routepost (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routepost (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routepost (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routepost (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
Routedel (const Router &router) const
 
Routedel (const std::string &relativeMountPath, const Router &router) const
 
Routedel (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routedel (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routedel (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
Routedel (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
template<typename... Lambdas>
Routedel (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routedel (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routedel (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routedel (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
Routeconnect (const Router &router) const
 
Routeconnect (const std::string &relativeMountPath, const Router &router) const
 
Routeconnect (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routeconnect (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routeconnect (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
Routeconnect (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
template<typename... Lambdas>
Routeconnect (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeconnect (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeconnect (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeconnect (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
Routeoptions (const Router &router) const
 
Routeoptions (const std::string &relativeMountPath, const Router &router) const
 
Routeoptions (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routeoptions (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routeoptions (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
Routeoptions (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
template<typename... Lambdas>
Routeoptions (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeoptions (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeoptions (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routeoptions (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
Routetrace (const Router &router) const
 
Routetrace (const std::string &relativeMountPath, const Router &router) const
 
Routetrace (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routetrace (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routetrace (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
Routetrace (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
template<typename... Lambdas>
Routetrace (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routetrace (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routetrace (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routetrace (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
Routepatch (const Router &router) const
 
Routepatch (const std::string &relativeMountPath, const Router &router) const
 
Routepatch (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routepatch (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routepatch (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
Routepatch (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
template<typename... Lambdas>
Routepatch (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routepatch (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routepatch (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routepatch (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
Routehead (const Router &router) const
 
Routehead (const std::string &relativeMountPath, const Router &router) const
 
Routehead (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routehead (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda) const
 
Routehead (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
Routehead (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda) const
 
template<typename... Lambdas>
Routehead (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routehead (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routehead (const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
template<typename... Lambdas>
Routehead (const std::string &relativeMountPath, const std::function< void(const std::shared_ptr< Request > &, const std::shared_ptr< Response > &, Next &)> &lambda, Lambdas... lambdas) const
 
- Protected Attributes inherited from express::Router
std::shared_ptr< RootRouterootRoute = nullptr
 

Detailed Description

Definition at line 35 of file BasicAuthentication.h.

Constructor & Destructor Documentation

◆ BasicAuthentication()

express::middleware::BasicAuthentication::BasicAuthentication ( const std::string & userName,
const std::string & password,
const std::string & realm )
protected

Definition at line 36 of file BasicAuthentication.cpp.

36 {
37 std::string userNamePassword = userName + ":" + password;
38 const std::string credentials =
39 base64::base64_encode(reinterpret_cast<unsigned char*>(userNamePassword.data()), userNamePassword.length());
40
41 use([realm, credentials] MIDDLEWARE(req, res, next) {
42 const std::string authCredentials = httputils::str_split(req->get("Authorization"), ' ').second;
43
44 if (authCredentials == credentials) {
45 next();
46 } else {
47 if (authCredentials.empty()) {
48 res->set("WWW-Authenticate", "Basic realm=\"" + realm + "\"");
49 }
50 res->sendStatus(401);
51 }
52 });
53 }
#define MIDDLEWARE(req, res, next)
Definition Router.h:40
Route & use(const Router &router) const
Definition Router.cpp:60
std::string base64_encode(const unsigned char *bytes_to_encode, std::size_t length)
Definition base64.cpp:47
std::pair< std::string, std::string > str_split(const std::string &base, char c_middle)

Member Function Documentation

◆ instance()

class BasicAuthentication & express::middleware::BasicAuthentication::instance ( const std::string & userName,
const std::string & password,
const std::string & realm )
staticprotected

Definition at line 56 of file BasicAuthentication.cpp.

56 {
57 // Keep the created authentication middleware alive
58 static std::list<std::shared_ptr<class BasicAuthentication>> basicAuthentications;
59
60 BasicAuthentication* basicAuthentication = new BasicAuthentication(userName, password, realm);
61 basicAuthentications.push_back(std::shared_ptr<BasicAuthentication>(basicAuthentication));
62
63 return *basicAuthentication;
64 }
BasicAuthentication(const std::string &userName, const std::string &password, const std::string &realm)

Friends And Related Symbol Documentation

◆ BasicAuthentication

class BasicAuthentication & BasicAuthentication ( const std::string & userName,
const std::string & password,
const std::string & realm )
friend

Definition at line 66 of file BasicAuthentication.cpp.

66 {
67 return BasicAuthentication::instance(userName, password, realm);
68 }
static class BasicAuthentication & instance(const std::string &userName, const std::string &password, const std::string &realm)

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