shibsp::LogoutHandler Class Reference

Base class for logout-related handlers. More...

#include <shibsp/handler/LogoutHandler.h>

Inheritance diagram for shibsp::LogoutHandler:
shibsp::RemotedHandler shibsp::Handler shibsp::Remoted shibsp::PropertySet shibsp::LogoutInitiator

List of all members.

Public Member Functions

std::pair< bool, long > run (SPRequest &request, bool isHandler=true) const
 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.
void receive (DDF &in, std::ostream &out)
 A remoted procedure that will perform any necessary back-channel notifications.
const char * getEventType () const
 Get the type of event, as input to error handling in response to errors raised by this handler.

Protected Member Functions

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 LogoutEventnewLogoutEvent (const Application &application, const xmltooling::HTTPRequest *request=nullptr, const Session *session=nullptr) const
 Creates a new LogoutEvent for the event log.

Protected Attributes

bool m_initiator
 Flag indicating whether the subclass is acting as a LogoutInitiator.
std::vector< std::string > m_preserve
 Array of query string parameters to preserve across front-channel notifications, if present.

Detailed Description

Base class for logout-related handlers.


Member Function Documentation

const char* shibsp::LogoutHandler::getEventType (  )  const [virtual]

Get the type of event, as input to error handling in response to errors raised by this handler.

Returns:
an event type for error handling

Reimplemented from shibsp::Handler.

virtual LogoutEvent* shibsp::LogoutHandler::newLogoutEvent ( const Application application,
const xmltooling::HTTPRequest *  request = nullptr,
const Session session = nullptr 
) const [protected, virtual]

Creates a new LogoutEvent for the event log.

Parameters:
application the Application associated with the event
request the HTTP client request associated with the event, or nullptr
session the user session associated with the event, or nullptr
Returns:
a fresh LogoutEvent, prepopulated by the input parameters, or nullptr if an error occurs
bool shibsp::LogoutHandler::notifyBackChannel ( const Application application,
const char *  requestURL,
const std::vector< std::string > &  sessions,
bool  local 
) const [protected]

Perform back-channel logout notifications for an Application.

Parameters:
application the Application to notify
requestURL requestURL that resulted in method call
sessions array of session keys being logged out
local true iff the logout operation is local to the SP, false iff global
Returns:
true iff all notifications succeeded
std::pair<bool,long> shibsp::LogoutHandler::notifyFrontChannel ( const Application application,
const xmltooling::HTTPRequest &  request,
xmltooling::HTTPResponse &  response,
const std::map< std::string, std::string > *  params = nullptr 
) const [protected]

Perform front-channel logout notifications for an Application.

Parameters:
application the Application to notify
request last request from browser
response response to use for next notification
params map of query string parameters to preserve across this notification
Returns:
indicator of a completed response along with the status code to return from the handler
void shibsp::LogoutHandler::receive ( DDF in,
std::ostream &  out 
) [virtual]

A remoted procedure that will perform any necessary back-channel notifications.

The input structure must contain an "application_id" member, and a "sessions" list containing the session keys, along with an integer member called "notify" with a value of 1.

Parameters:
in incoming DDF message
out stream to write outgoing DDF message to

Implements shibsp::Remoted.

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.

std::pair<bool,long> shibsp::LogoutHandler::sendLogoutPage ( const Application application,
const xmltooling::HTTPRequest &  request,
xmltooling::HTTPResponse &  response,
const char *  type 
) const [protected]

Sends a response template to the user agent informing it of the results of a logout attempt.

Parameters:
application the Application to use in determining the logout template
request the HTTP client request to supply to the template
response the HTTP response to use
type designates the prefix of logout template name to use
std::pair<bool,long> shibsp::LogoutHandler::sendLogoutPage ( const Application application,
const xmltooling::HTTPRequest &  request,
xmltooling::HTTPResponse &  response,
bool  local = true,
const char *  status = nullptr 
) const [protected]
Deprecated:
Sends a response template to the user agent informing it of the results of a logout attempt.
Parameters:
application the Application to use in determining the logout template
request the HTTP client request to supply to the template
response the HTTP response to use
local true iff the logout operation was local to the SP, false iff global
status optional logoutStatus key value to add to template

Member Data Documentation

Flag indicating whether the subclass is acting as a LogoutInitiator.

std::vector<std::string> shibsp::LogoutHandler::m_preserve [protected]

Array of query string parameters to preserve across front-channel notifications, if present.


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

Generated on 15 Nov 2017 for shibboleth-2.6.1 by  doxygen 1.6.1