Kea 3.2.0-git
isc::http::BasicHttpAuthConfig Class Reference

Basic HTTP authentication configuration. More...

#include <basic_auth_config.h>

Inheritance diagram for isc::http::BasicHttpAuthConfig:

Public Member Functions

virtual ~BasicHttpAuthConfig ()
 Destructor.
void add (const std::string &user, const std::string &user_file, const std::string &password, const std::string &password_file, bool password_file_only=false, const isc::data::ConstElementPtr &user_context=isc::data::ConstElementPtr())
 Add a client configuration.
virtual isc::http::HttpResponseJsonPtr checkAuth (const isc::http::HttpResponseCreator &creator, const isc::http::HttpRequestPtr &request) const
 Validate HTTP request.
virtual void clear ()
 Clear configuration.
virtual bool empty () const
 Empty predicate.
const BasicHttpAuthClientList & getClientList () const
 Returns the list of client configuration.
const BasicHttpAuthMap & getCredentialMap () const
 Returns the credential and user id map.
std::string getFileContent (const std::string &file_name) const
 Get the content of {directory}/{file-name} regular file.
void parse (const isc::data::ConstElementPtr &config)
 Parses basic HTTP authentication configuration.
virtual isc::data::ElementPtr toElement () const
 Unparses basic HTTP authentication configuration.
Public Member Functions inherited from isc::http::HttpAuthConfig
virtual ~HttpAuthConfig ()
 Destructor.
const std::string & getDirectory () const
 Returns the common part for file paths (usually a directory).
const std::string & getRealm () const
 Returns the realm.
void setDirectory (const std::string &directory)
 Set the common part for file paths (usually a directory).
void setRealm (const std::string &realm)
 Set the realm.
Public Member Functions inherited from isc::data::UserContext
void contextToElement (data::ElementPtr map) const
 Merge unparse a user_context object.
data::ConstElementPtr getContext () const
 Returns const pointer to the user context.
void setContext (const data::ConstElementPtr &ctx)
 Sets user context.
Public Member Functions inherited from isc::data::CfgToElement
virtual ~CfgToElement ()
 Destructor.

Additional Inherited Members

Static Public Member Functions inherited from isc::data::UserContext
static data::ElementPtr toElement (data::ConstElementPtr map)
 Copy an Element map.
Protected Attributes inherited from isc::data::UserContext
data::ConstElementPtr user_context_
 Pointer to the user context (may be NULL).

Detailed Description

Basic HTTP authentication configuration.

Definition at line 117 of file basic_auth_config.h.

Constructor & Destructor Documentation

◆ ~BasicHttpAuthConfig()

virtual isc::http::BasicHttpAuthConfig::~BasicHttpAuthConfig ( )
inlinevirtual

Destructor.

Definition at line 120 of file basic_auth_config.h.

Member Function Documentation

◆ add()

void isc::http::BasicHttpAuthConfig::add ( const std::string & user,
const std::string & user_file,
const std::string & password,
const std::string & password_file,
bool password_file_only = false,
const isc::data::ConstElementPtr & user_context = isc::data::ConstElementPtr() )

Add a client configuration.

Parameters
userUser id.
user_fileFile with the user id.
passwordPassword.
password_fileFile with the password.
password_file_onlyFlag true if the password file includes the user id too.
user_contextOptional user context.
Exceptions
BadValueif the user id contains the ':' character.

Definition at line 74 of file basic_auth_config.cc.

References isc::http::BasicHttpAuth::getCredential().

Referenced by parse().

Here is the call graph for this function:

◆ checkAuth()

HttpResponseJsonPtr isc::http::BasicHttpAuthConfig::checkAuth ( const isc::http::HttpResponseCreator & creator,
const isc::http::HttpRequestPtr & request ) const
virtual

Validate HTTP request.

Parameters
creatorThe HTTP response creator.
requestThe HTTP request to validate.
Returns
Error HTTP response if validation failed, null otherwise.

Implements isc::http::HttpAuthConfig.

Definition at line 366 of file basic_auth_config.cc.

References isc::http::auth_logger, isc::http::HttpResponseCreator::createStockHttpResponse(), getCredentialMap(), isc::http::HttpAuthConfig::getRealm(), isc::http::HTTP_CLIENT_REQUEST_AUTHORIZED, isc::http::HTTP_CLIENT_REQUEST_BAD_AUTH_HEADER, isc::http::HTTP_CLIENT_REQUEST_NO_AUTH_HEADER, isc::http::HTTP_CLIENT_REQUEST_NOT_AUTHORIZED, isc_throw, LOG_INFO, isc::util::str::lowercase(), isc::http::HttpRequest::recordBasicAuth_, isc::util::str::trim(), isc::http::UNAUTHORIZED, and isc::Exception::what().

Here is the call graph for this function:

◆ clear()

void isc::http::BasicHttpAuthConfig::clear ( )
virtual

Clear configuration.

Implements isc::http::HttpAuthConfig.

Definition at line 88 of file basic_auth_config.cc.

◆ empty()

bool isc::http::BasicHttpAuthConfig::empty ( ) const
virtual

Empty predicate.

Returns
true if the configuration is empty so authentication is not required.

Implements isc::http::HttpAuthConfig.

Definition at line 94 of file basic_auth_config.cc.

◆ getClientList()

const BasicHttpAuthClientList & isc::http::BasicHttpAuthConfig::getClientList ( ) const
inline

Returns the list of client configuration.

Returns
List of basic HTTP authentication client configuration.

Definition at line 157 of file basic_auth_config.h.

◆ getCredentialMap()

const BasicHttpAuthMap & isc::http::BasicHttpAuthConfig::getCredentialMap ( ) const
inline

Returns the credential and user id map.

Returns
The basic HTTP authentication credential and user id map.

Definition at line 164 of file basic_auth_config.h.

Referenced by checkAuth().

◆ getFileContent()

string isc::http::BasicHttpAuthConfig::getFileContent ( const std::string & file_name) const

Get the content of {directory}/{file-name} regular file.

Parameters
file_nameThe file name.
Returns
The content of the {directory}/{file-name} regular file.

Definition at line 99 of file basic_auth_config.cc.

References isc::util::file::getContent(), isc::http::HttpAuthConfig::getDirectory(), isc_throw, and isc::Exception::what().

Referenced by parse().

Here is the call graph for this function:

◆ parse()

void isc::http::BasicHttpAuthConfig::parse ( const isc::data::ConstElementPtr & config)
virtual

Parses basic HTTP authentication configuration.

Parameters
configElement holding the basic HTTP authentication configuration to be parsed.
Exceptions
DhcpConfigErrorwhen the configuration is invalid.

Implements isc::http::HttpAuthConfig.

Definition at line 147 of file basic_auth_config.cc.

References add(), isc::http::auth_logger, isc::data::DefaultCredentials::check(), getFileContent(), isc::http::HTTP_CLIENT_PASSWORD_SECURITY_WARNING, isc::http::HTTP_CLIENT_USER_SECURITY_WARNING, isc_throw, Element::list, LOG_INFO, Element::map, isc::data::UserContext::setContext(), isc::http::HttpAuthConfig::setDirectory(), isc::http::HttpAuthConfig::setRealm(), isc::util::file::PathChecker::shouldEnforceSecurity(), and Element::string.

Here is the call graph for this function:

◆ toElement()

ElementPtr isc::http::BasicHttpAuthConfig::toElement ( ) const
virtual

Unparses basic HTTP authentication configuration.

Returns
A pointer to unparsed basic HTTP authentication configuration.

Implements isc::http::HttpAuthConfig.

Definition at line 121 of file basic_auth_config.cc.

References isc::data::UserContext::contextToElement(), Element::create(), Element::createList(), Element::createMap(), isc::http::HttpAuthConfig::getDirectory(), and isc::http::HttpAuthConfig::getRealm().

Here is the call graph for this function:

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