shibsp::AbstractHandler Class Reference

Base class for handlers based on a DOMPropertySet. More...

#include <shibsp/handler/AbstractHandler.h>

Inheritance diagram for shibsp::AbstractHandler:
shibsp::Handler shibsp::DOMPropertySet shibsp::PropertySet shibsp::PropertySet shibsp::AssertionConsumerService shibsp::SecuredHandler

List of all members.

Protected Types

enum  PropertySourceTypes { HANDLER_PROPERTY_REQUEST = 1, HANDLER_PROPERTY_MAP = 2, HANDLER_PROPERTY_FIXED = 4, HANDLER_PROPERTY_ALL = 255 }
 

Bitmask of property sources to read from (request query parameter, request mapper, fixed handler property).


Protected Member Functions

 AbstractHandler (const xercesc::DOMElement *e, xmltooling::logging::Category &log, xercesc::DOMNodeFilter *filter=nullptr, const Remapper *remapper=nullptr)
 Constructor.
void log (SPRequest::SPLogLevel level, const std::string &msg) const
 Log using handler's specific logging object.
virtual void checkError (const xmltooling::XMLObject *response, const opensaml::saml2md::RoleDescriptor *role=nullptr) const
 Examines a protocol response message for errors and raises an annotated exception if an error is found.
void fillStatus (opensaml::saml2p::StatusResponseType &response, const XMLCh *code, const XMLCh *subcode=nullptr, const char *msg=nullptr) const
 Prepares Status information in a SAML 2.0 response.
long sendMessage (const opensaml::MessageEncoder &encoder, xmltooling::XMLObject *msg, const char *relayState, const char *destination, const opensaml::saml2md::RoleDescriptor *role, const Application &application, xmltooling::HTTPResponse &httpResponse, const char *defaultSigningProperty) const
 Encodes and sends SAML 2.0 message, optionally signing it in the process.
virtual void preservePostData (const Application &application, const xmltooling::HTTPRequest &request, xmltooling::HTTPResponse &response, const char *relayState) const
 Implements a mechanism to preserve form post data.
virtual DDF recoverPostData (const Application &application, const xmltooling::HTTPRequest &request, xmltooling::HTTPResponse &response, const char *relayState) const
 Implements storage service and cookie mechanism to recover PostData.
virtual long sendPostResponse (const Application &application, xmltooling::HTTPResponse &response, const char *url, DDF &postData) const
 Post a redirect response with post data.
std::pair< bool, bool > getBool (const char *name, const xmltooling::HTTPRequest &request, unsigned int type=HANDLER_PROPERTY_ALL) const
 Returns a boolean-valued property.
std::pair< bool, const char * > getString (const char *name, const xmltooling::HTTPRequest &request, unsigned int type=HANDLER_PROPERTY_ALL) const
 Returns a string-valued property.
std::pair< bool, unsigned int > getUnsignedInt (const char *name, const xmltooling::HTTPRequest &request, unsigned int type=HANDLER_PROPERTY_ALL) const
 Returns an unsigned integer-valued property.
std::pair< bool, int > getInt (const char *name, const xmltooling::HTTPRequest &request, unsigned int type=HANDLER_PROPERTY_ALL) const
 Returns an integer-valued property.

Protected Attributes

xmltooling::logging::Category & m_log
 Logging object.

Detailed Description

Base class for handlers based on a DOMPropertySet.


Constructor & Destructor Documentation

shibsp::AbstractHandler::AbstractHandler ( const xercesc::DOMElement *  e,
xmltooling::logging::Category &  log,
xercesc::DOMNodeFilter *  filter = nullptr,
const Remapper remapper = nullptr 
) [protected]

Constructor.

Parameters:
e DOM element to load as property set.
log logging category to use
filter optional filter controls what child elements to include as nested PropertySets
remapper optional property rename mapper for legacy property support

Member Function Documentation

virtual void shibsp::AbstractHandler::checkError ( const xmltooling::XMLObject *  response,
const opensaml::saml2md::RoleDescriptor *  role = nullptr 
) const [protected, virtual]

Examines a protocol response message for errors and raises an annotated exception if an error is found.

The base class version understands SAML 1.x and SAML 2.0 responses.

Parameters:
response a response message of some known protocol
role issuer of message
void shibsp::AbstractHandler::fillStatus ( opensaml::saml2p::StatusResponseType &  response,
const XMLCh *  code,
const XMLCh *  subcode = nullptr,
const char *  msg = nullptr 
) const [protected]

Prepares Status information in a SAML 2.0 response.

Parameters:
response SAML 2.0 response message
code SAML status code
subcode optional SAML substatus code
msg optional message to pass back
std::pair<bool,bool> shibsp::AbstractHandler::getBool ( const char *  name,
const xmltooling::HTTPRequest &  request,
unsigned int  type = HANDLER_PROPERTY_ALL 
) const [protected]

Returns a boolean-valued property.

Parameters:
name property name
request reference to incoming request
type bitmask of property sources to use
Returns:
a pair consisting of a nullptr indicator and the property value iff the indicator is true
std::pair<bool,int> shibsp::AbstractHandler::getInt ( const char *  name,
const xmltooling::HTTPRequest &  request,
unsigned int  type = HANDLER_PROPERTY_ALL 
) const [protected]

Returns an integer-valued property.

Parameters:
name property name
request reference to incoming request
type bitmask of property sources to use
Returns:
a pair consisting of a nullptr indicator and the property value iff the indicator is true
std::pair<bool,const char*> shibsp::AbstractHandler::getString ( const char *  name,
const xmltooling::HTTPRequest &  request,
unsigned int  type = HANDLER_PROPERTY_ALL 
) const [protected]

Returns a string-valued property.

Parameters:
name property name
request reference to incoming request
type bitmask of property sources to use
Returns:
a pair consisting of a nullptr indicator and the property value iff the indicator is true
std::pair<bool,unsigned int> shibsp::AbstractHandler::getUnsignedInt ( const char *  name,
const xmltooling::HTTPRequest &  request,
unsigned int  type = HANDLER_PROPERTY_ALL 
) const [protected]

Returns an unsigned integer-valued property.

Parameters:
name property name
request reference to incoming request
type bitmask of property sources to use
Returns:
a pair consisting of a nullptr indicator and the property value iff the indicator is true
void shibsp::AbstractHandler::log ( SPRequest::SPLogLevel  level,
const std::string &  msg 
) const [protected, virtual]

Log using handler's specific logging object.

Parameters:
level logging level
msg message to log

Reimplemented from shibsp::Handler.

virtual void shibsp::AbstractHandler::preservePostData ( const Application application,
const xmltooling::HTTPRequest &  request,
xmltooling::HTTPResponse &  response,
const char *  relayState 
) const [protected, virtual]

Implements a mechanism to preserve form post data.

Parameters:
application the associated Application
request incoming HTTP request
response outgoing HTTP response
relayState relay state information attached to current sequence, if any
virtual DDF shibsp::AbstractHandler::recoverPostData ( const Application application,
const xmltooling::HTTPRequest &  request,
xmltooling::HTTPResponse &  response,
const char *  relayState 
) const [protected, virtual]

Implements storage service and cookie mechanism to recover PostData.

If a supported mechanism can be identified, the return value will be the recovered state information.

Parameters:
application the associated Application
request incoming HTTP request
response outgoing HTTP response
relayState relay state information attached to current sequence, if any
Returns:
recovered form post data associated with request as a DDF list of string members
long shibsp::AbstractHandler::sendMessage ( const opensaml::MessageEncoder &  encoder,
xmltooling::XMLObject *  msg,
const char *  relayState,
const char *  destination,
const opensaml::saml2md::RoleDescriptor *  role,
const Application application,
xmltooling::HTTPResponse &  httpResponse,
const char *  defaultSigningProperty 
) const [protected]

Encodes and sends SAML 2.0 message, optionally signing it in the process.

If the method returns, the message MUST NOT be freed by the caller.

Parameters:
encoder the MessageEncoder to use
msg the message to send
relayState any RelayState to include with the message
destination location to send message, if not a backchannel response
role recipient of message, if known
application the Application sending the message
httpResponse channel for sending message
defaultSigningProperty the effective value of the "signing" property if unset
Returns:
the result of sending the message using the encoder
virtual long shibsp::AbstractHandler::sendPostResponse ( const Application application,
xmltooling::HTTPResponse &  response,
const char *  url,
DDF postData 
) const [protected, virtual]

Post a redirect response with post data.

Parameters:
application the associated Application
response outgoing HTTP response
url action url for the form
postData list of parameters to load into the form, as DDF string members

Member Data Documentation

xmltooling::logging::Category& shibsp::AbstractHandler::m_log [protected]

Logging object.


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

Generated on 15 Dec 2020 for shibboleth-3.2.0 by  doxygen 1.6.1