|
std::pair< bool, long > | notifyFrontChannel (const Application &application, const xmltooling::HTTPRequest &request, xmltooling::HTTPResponse &response, const std::map< std::string, std::string > *params=nullptr) const |
| Perform front-channel logout notifications for an Application.
|
|
bool | notifyBackChannel (const Application &application, const char *requestURL, const std::vector< std::string > &sessions, bool local) const |
| Perform back-channel logout notifications for an Application.
|
|
std::pair< bool, long > | sendLogoutPage (const Application &application, const xmltooling::HTTPRequest &request, xmltooling::HTTPResponse &response, bool local=true, const char *status=nullptr) const |
|
std::pair< bool, long > | sendLogoutPage (const Application &application, const xmltooling::HTTPRequest &request, xmltooling::HTTPResponse &response, const char *type) const |
| Sends a response template to the user agent informing it of the results of a logout attempt.
|
|
virtual LogoutEvent * | newLogoutEvent (const Application &application, const xmltooling::HTTPRequest *request=nullptr, const Session *session=nullptr) const |
| Creates a new LogoutEvent for the event log.
|
|
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.
|
|
virtual void | log (SPRequest::SPLogLevel level, const std::string &msg) const |
| Log using handler's specific logging object.
|
|
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.
|
|
Base class for logout-related handlers.
std::pair<bool,long> shibsp::LogoutHandler::run |
( |
SPRequest & |
request, |
|
|
bool |
isHandler = true |
|
) |
| const |
|
virtual |
The base method will iteratively attempt front-channel notification of logout of the current session, and after the final round trip will perform back-channel notification.
Nothing will be done unless the handler detects that it is the "top" level logout handler. If the method returns false, then the specialized class should perform its work assuming that the notifications are completed.
Note that the current session is NOT removed from the cache.
- Parameters
-
request | SP request context |
isHandler | true iff executing in the context of a direct handler invocation |
- Returns
- a pair containing a "request completed" indicator and a server-specific response code
Implements shibsp::Handler.