PionNetworkLibrary
|
#include <basic_auth.hpp>
Public Member Functions | |
basic_auth (user_manager_ptr userManager, const std::string &realm="PION") | |
default constructor More... | |
virtual | ~basic_auth () |
virtual destructor More... | |
virtual bool | handle_request (const http::request_ptr &http_request_ptr, const tcp::connection_ptr &tcp_conn) |
virtual void | set_option (const std::string &name, const std::string &value) |
Public Member Functions inherited from pion::http::auth | |
auth (user_manager_ptr userManager) | |
default constructor More... | |
virtual | ~auth () |
virtual destructor More... | |
void | add_restrict (const std::string &resource) |
void | add_permit (const std::string &resource) |
virtual bool | add_user (std::string const &username, std::string const &password) |
virtual bool | update_user (std::string const &username, std::string const &password) |
virtual bool | remove_user (std::string const &username) |
virtual user_ptr | get_user (std::string const &username) |
Protected Member Functions | |
void | handle_unauthorized (const http::request_ptr &http_request_ptr, const tcp::connection_ptr &tcp_conn) |
Protected Member Functions inherited from pion::http::auth | |
bool | need_authentication (http::request_ptr const &http_request_ptr) const |
bool | find_resource (const resource_set_type &resource_set, const std::string &resource) const |
void | set_logger (logger log_ptr) |
sets the logger to be used More... | |
Static Protected Member Functions | |
static bool | parse_authorization (std::string const &authorization, std::string &credentials) |
static bool | parse_credentials (std::string const &credentials, std::string &username, std::string &password) |
Additional Inherited Members | |
Protected Types inherited from pion::http::auth | |
typedef std::set< std::string > | resource_set_type |
data type for a set of resources to be authenticated More... | |
typedef std::map< std::string, std::pair < boost::posix_time::ptime, user_ptr > > | user_cache_type |
data type used to map authentication credentials to user objects More... | |
Protected Attributes inherited from pion::http::auth | |
logger | m_logger |
primary logging interface used by this class More... | |
user_manager_ptr | m_user_manager |
container used to manager user objects More... | |
resource_set_type | m_restrict_list |
collection of resources that require authentication More... | |
resource_set_type | m_white_list |
collection of resources that do NOT require authentication More... | |
boost::mutex | m_resource_mutex |
mutex used to protect access to the resources More... | |
basic_auth: a base class for handling HTTP Authentication and session management in accordance with RFC 2617 http://tools.ietf.org/html/rfc2617
pion::http::basic_auth::basic_auth | ( | user_manager_ptr | userManager, |
const std::string & | realm = "PION" |
||
) |
default constructor
References PION_GET_LOGGER, and pion::http::auth::set_logger().
|
inlinevirtual |
virtual destructor
|
virtual |
attempts to validate authentication of a new HTTP request. If request valid, pointer to user identity object (if any) will be preserved in the request and return "true". If request not authenticated, appropriate response is sent over tcp_conn and return "false";
http_request_ptr | the new HTTP request to handle |
tcp_conn | the TCP connection that has the new request |
Implements pion::http::auth.
References handle_unauthorized(), pion::http::types::HEADER_AUTHORIZATION, pion::http::auth::m_user_manager, pion::http::auth::need_authentication(), parse_authorization(), and parse_credentials().
|
protected |
used to send responses when access to resource is not authorized
http_request_ptr | the new HTTP request to handle |
tcp_conn | the TCP connection that has the new request |
References pion::http::response_writer::create(), pion::tcp::connection::finish(), pion::http::types::RESPONSE_CODE_UNAUTHORIZED, and pion::http::types::RESPONSE_MESSAGE_UNAUTHORIZED.
Referenced by handle_request().
|
staticprotected |
extracts base64 user credentials from authorization string
authorization | value of the HEADER_AUTHORIZATION |
Referenced by handle_request().
|
staticprotected |
parse base64 credentials and extract username/password
References pion::algorithm::base64_decode().
Referenced by handle_request().
|
virtual |
sets a configuration option Valid options:
name | the name of the option to change |
value | the value of the option |
Reimplemented from pion::http::auth.