#include <shibsp/handler/AbstractHandler.h>
Inheritance diagram for shibsp::AbstractHandler:
Protected Member Functions | |
AbstractHandler (const xercesc::DOMElement *e, xmltooling::logging::Category &log, xercesc::DOMNodeFilter *filter=NULL, const std::map< std::string, std::string > *remapper=NULL) | |
Constructor. | |
virtual void | checkError (const xmltooling::XMLObject *response, const opensaml::saml2md::RoleDescriptor *role=NULL) 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=NULL, const char *msg=NULL) 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 | preserveRelayState (const Application &application, xmltooling::HTTPResponse &response, std::string &relayState) const |
Implements various mechanisms to preserve RelayState, such as cookies or StorageService-backed keys. | |
virtual void | recoverRelayState (const Application &application, const xmltooling::HTTPRequest &request, xmltooling::HTTPResponse &response, std::string &relayState, bool clear=true) const |
Implements various mechanisms to recover RelayState, such as cookies or StorageService-backed keys. | |
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 &httpResponse, const char *url, DDF &postData) const |
Post a redirect response with post data. | |
Protected Attributes | |
xmltooling::logging::Category & | m_log |
Logging object. | |
xmltooling::auto_ptr_char | m_configNS |
Configuration namespace for custom properties. |
shibsp::AbstractHandler::AbstractHandler | ( | const xercesc::DOMElement * | e, | |
xmltooling::logging::Category & | log, | |||
xercesc::DOMNodeFilter * | filter = NULL , |
|||
const std::map< std::string, std::string > * | remapper = NULL | |||
) | [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 = NULL | |||
) | 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 = NULL , |
|||
const char * | msg = NULL | |||
) | 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 |
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 void shibsp::AbstractHandler::preserveRelayState | ( | const Application & | application, | |
xmltooling::HTTPResponse & | response, | |||
std::string & | relayState | |||
) | const [protected, virtual] |
Implements various mechanisms to preserve RelayState, such as cookies or StorageService-backed keys.
If a supported mechanism can be identified, the input parameter will be replaced with a suitable state key.
application | the associated Application | |
response | outgoing HTTP response | |
relayState | RelayState token to supply with message |
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 |
virtual void shibsp::AbstractHandler::recoverRelayState | ( | const Application & | application, | |
const xmltooling::HTTPRequest & | request, | |||
xmltooling::HTTPResponse & | response, | |||
std::string & | relayState, | |||
bool | clear = true | |||
) | const [protected, virtual] |
Implements various mechanisms to recover RelayState, such as cookies or StorageService-backed keys.
If a supported mechanism can be identified, the input parameter will be replaced with the recovered state information.
application | the associated Application | |
request | incoming HTTP request | |
response | outgoing HTTP response | |
relayState | RelayState token supplied with message | |
clear | true iff the token state should be cleared |
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 & | httpResponse, | |||
const char * | url, | |||
DDF & | postData | |||
) | const [protected, virtual] |
Post a redirect response with post data.
application | the associated Application | |
response | outgoing HTTP response | |
request | incoming HTTP request | |
url | action url for the form | |
postData | list of parameters to load into the form, as DDF string members |