Base class for handlers based on a DOMPropertySet. More...
#include <shibsp/handler/AbstractHandler.h>


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 std::map< std::string, std::string > *remapper=nullptr) | |
| Constructor. | |
| void | log (SPRequest::SPLogLevel level, const std::string &msg) const |
| 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, bool signIfPossible=false) 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 SPRequest &request, unsigned int type=HANDLER_PROPERTY_ALL) const |
| Returns a boolean-valued property. | |
| std::pair< bool, const char * > | getString (const char *name, const SPRequest &request, unsigned int type=HANDLER_PROPERTY_ALL) const |
| Returns a string-valued property. | |
| std::pair< bool, unsigned int > | getUnsignedInt (const char *name, const SPRequest &request, unsigned int type=HANDLER_PROPERTY_ALL) const |
| Returns an unsigned integer-valued property. | |
| std::pair< bool, int > | getInt (const char *name, const SPRequest &request, unsigned int type=HANDLER_PROPERTY_ALL) const |
| Returns an integer-valued property. | |
Protected Attributes | |
| xmltooling::logging::Category & | m_log |
| Logging object. | |
| xmltooling::auto_ptr_char | m_configNS |
| Configuration namespace for custom properties. | |
Base class for handlers based on a DOMPropertySet.
| shibsp::AbstractHandler::AbstractHandler | ( | const xercesc::DOMElement * | e, | |
| xmltooling::logging::Category & | log, | |||
| xercesc::DOMNodeFilter * | filter = nullptr, |
|||
| const std::map< std::string, std::string > * | remapper = nullptr | |||
| ) | [protected] |
Constructor.
| 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 map of property rename rules for legacy property support |
| 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.
| 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.
| 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 SPRequest & | request, | |||
| unsigned int | type = HANDLER_PROPERTY_ALL | |||
| ) | const [protected] |
Returns a boolean-valued property.
| name | property name | |
| request | reference to incoming request | |
| type | bitmask of property sources to use |
| std::pair<bool,int> shibsp::AbstractHandler::getInt | ( | const char * | name, | |
| const SPRequest & | request, | |||
| unsigned int | type = HANDLER_PROPERTY_ALL | |||
| ) | const [protected] |
Returns an integer-valued property.
| name | property name | |
| request | reference to incoming request | |
| type | bitmask of property sources to use |
| std::pair<bool,const char*> shibsp::AbstractHandler::getString | ( | const char * | name, | |
| const SPRequest & | request, | |||
| unsigned int | type = HANDLER_PROPERTY_ALL | |||
| ) | const [protected] |
Returns a string-valued property.
| name | property name | |
| request | reference to incoming request | |
| type | bitmask of property sources to use |
| std::pair<bool,unsigned int> shibsp::AbstractHandler::getUnsignedInt | ( | const char * | name, | |
| const SPRequest & | request, | |||
| unsigned int | type = HANDLER_PROPERTY_ALL | |||
| ) | const [protected] |
Returns an unsigned integer-valued property.
| name | property name | |
| request | reference to incoming request | |
| type | bitmask of property sources to use |
| 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.
| 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.
| application | the associated Application | |
| request | incoming HTTP request | |
| response | outgoing HTTP response | |
| relayState | relay state information attached to current sequence, if any |
| 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, | |||
| bool | signIfPossible = false | |||
| ) | 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.
| 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 | |
| signIfPossible | true iff signing should be attempted regardless of "signing" property |
| 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.
| 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 |
xmltooling::auto_ptr_char shibsp::AbstractHandler::m_configNS [protected] |
Configuration namespace for custom properties.
xmltooling::logging::Category& shibsp::AbstractHandler::m_log [protected] |
Logging object.
1.7.1