Base class for handlers that create sessions by consuming SSO protocol responses.
More...
Protected Member Functions |
| AssertionConsumerService (const xercesc::DOMElement *e, const char *appId, xmltooling::logging::Category &log, xercesc::DOMNodeFilter *filter=nullptr, const std::map< std::string, std::string > *remapper=nullptr) |
| Constructor.
|
void | checkAddress (const Application &application, const xmltooling::HTTPRequest &httpRequest, const char *issuedTo) const |
| Enforce address checking requirements.
|
virtual std::pair< bool, long > | finalizeResponse (const Application &application, const xmltooling::HTTPRequest &httpRequest, xmltooling::HTTPResponse &httpResponse, std::string &relayState) const |
| Complete the client's transition back to the expected resource.
|
void | generateMetadata (opensaml::saml2md::SPSSODescriptor &role, const char *handlerURL) const |
| Generates and/or modifies metadata reflecting the Handler.
|
virtual opensaml::SecurityPolicy * | createSecurityPolicy (const Application &application, const xmltooling::QName *role, bool validate, const char *policyId) const |
virtual void | implementProtocol (const Application &application, const xmltooling::HTTPRequest &httpRequest, xmltooling::HTTPResponse &httpResponse, opensaml::SecurityPolicy &policy, const PropertySet *reserved, const xmltooling::XMLObject &xmlObject) const =0 |
| Implement protocol-specific handling of the incoming decoded message.
|
virtual void | extractMessageDetails (const opensaml::Assertion &assertion, const XMLCh *protocol, opensaml::SecurityPolicy &policy) const |
| Extracts policy-relevant assertion details.
|
ResolutionContext * | resolveAttributes (const Application &application, const opensaml::saml2md::RoleDescriptor *issuer=nullptr, const XMLCh *protocol=nullptr, const opensaml::saml1::NameIdentifier *v1nameid=nullptr, const opensaml::saml2::NameID *nameid=nullptr, const XMLCh *authncontext_class=nullptr, const XMLCh *authncontext_decl=nullptr, const std::vector< const opensaml::Assertion * > *tokens=nullptr) const |
ResolutionContext * | resolveAttributes (const Application &application, const xmltooling::GenericRequest *request=nullptr, const opensaml::saml2md::RoleDescriptor *issuer=nullptr, const XMLCh *protocol=nullptr, const xmltooling::XMLObject *protmsg=nullptr, const opensaml::saml1::NameIdentifier *v1nameid=nullptr, const opensaml::saml1::AuthenticationStatement *v1statement=nullptr, const opensaml::saml2::NameID *nameid=nullptr, const opensaml::saml2::AuthnStatement *statement=nullptr, const XMLCh *authncontext_class=nullptr, const XMLCh *authncontext_decl=nullptr, const std::vector< const opensaml::Assertion * > *tokens=nullptr) const |
| Attempt SSO-initiated attribute resolution using the supplied information, including NameID and token extraction and filtering followed by secondary resolution.
|
virtual LoginEvent * | newLoginEvent (const Application &application, const xmltooling::HTTPRequest &request) const |
| Creates a new AuthnRequestEvent for the event log.
|
| 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 |
| 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, 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.
|
virtual void | cleanRelayState (const Application &application, const xmltooling::HTTPRequest &request, xmltooling::HTTPResponse &response) const |
| Prevents unused relay state from building up by cleaning old state from the client.
|
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.
|
bool | setProperty (const char *name, const char *val, const char *ns=nullptr) |
| Post-load injection of a property, for use by subclasses.
|
void | setAddress (const char *address) |
| Establishes message remoting using the supplied address.
|
DDF | wrap (const SPRequest &request, const std::vector< std::string > *headers=nullptr, bool certs=false) const |
| Wraps a request by creating an outgoing data flow with the data needed to remote the request information.
|
virtual std::pair< bool, long > | unwrap (SPRequest &request, DDF &out) const |
| Unwraps a response by examining an incoming data flow to determine whether a response was produced by the remoted handler.
|
xmltooling::HTTPRequest * | getRequest (DDF &in) const |
| Builds a new request instance around a remoted data object.
|
xmltooling::HTTPResponse * | getResponse (DDF &out) const |
| Builds a new response instance around an outgoing data object.
|
Base class for handlers that create sessions by consuming SSO protocol responses.