shibsp::SessionInitiator Class Reference

Pluggable runtime functionality that handles initiating sessions. More...

#include <shibsp/handler/SessionInitiator.h>

Inheritance diagram for shibsp::SessionInitiator:
shibsp::Handler shibsp::DOMPropertySet::Remapper shibsp::PropertySet

List of all members.

Public Member Functions

virtual const std::set
< std::string > & 
getSupportedOptions () const
 Indicates the set of optional settings supported by the handler.
virtual std::pair< bool, long > run (SPRequest &request, std::string &entityID, bool isHandler=true) const =0
 Executes an incoming request.
std::pair< bool, long > run (SPRequest &request, bool isHandler=true) const
 Executes handler functionality as an incoming request.
const char * remap (const char *src, xmltooling::logging::Category &log) const
 Remap a name (or return it unchanged).
const char * getType () const
 Returns the "type" of the Handler plugin.
void generateMetadata (opensaml::saml2md::SPSSODescriptor &role, const char *handlerURL) const
 Generates and/or modifies metadata reflecting the Handler.
void doGenerateMetadata (opensaml::saml2md::SPSSODescriptor &role, const char *handlerURL) const
 Generates RequestInitiator metadata when instructed.
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

bool checkCompatibility (SPRequest &request, bool isHandler) const
 Examines the request and applicable settings to determine whether the handler is able to support the request.
virtual AuthnRequestEventnewAuthnRequestEvent (const Application &application, const xmltooling::HTTPRequest *request=nullptr) const
 Creates a new AuthnRequestEvent for the event log.

Protected Attributes

std::set< std::string > m_supportedOptions
 Set of optional settings supported by handler.

Friends

void registerSessionInitiators ()
 Registers SessionInitiator implementations.

Detailed Description

Pluggable runtime functionality that handles initiating sessions.

By default, SessionInitiators look for an entityID on the incoming request and pass control to the specialized run method.


Member Function Documentation

bool shibsp::SessionInitiator::checkCompatibility ( SPRequest request,
bool  isHandler 
) const [protected]

Examines the request and applicable settings to determine whether the handler is able to support the request.

If the handler is within a chain, the method will return false, otherwise an exception will be raised.

Parameters:
request SP request context
isHandler true iff executing in the context of a direct handler invocation
Returns:
true iff the request appears to be compatible
void shibsp::SessionInitiator::doGenerateMetadata ( opensaml::saml2md::SPSSODescriptor &  role,
const char *  handlerURL 
) const

Generates RequestInitiator metadata when instructed.

Allows subclasses to decide whether it's appropriate to do so instead of requiring them to override the method to stop it.

Parameters:
role role object to inject metadata into
handlerURL base of endpoint to generate metadata with
void shibsp::SessionInitiator::generateMetadata ( opensaml::saml2md::SPSSODescriptor &  role,
const char *  handlerURL 
) const [virtual]

Generates and/or modifies metadata reflecting the Handler.

The default implementation does nothing.

Parameters:
role metadata role to decorate
handlerURL base location of handler's endpoint

Reimplemented from shibsp::Handler.

const char* shibsp::SessionInitiator::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 const std::set<std::string>& shibsp::SessionInitiator::getSupportedOptions (  )  const [virtual]

Indicates the set of optional settings supported by the handler.

Returns:
a set of the optional settings supported
const char* shibsp::SessionInitiator::getType (  )  const [virtual]

Returns the "type" of the Handler plugin.

Returns:
a Handler type

Reimplemented from shibsp::Handler.

virtual AuthnRequestEvent* shibsp::SessionInitiator::newAuthnRequestEvent ( const Application application,
const xmltooling::HTTPRequest *  request = nullptr 
) const [protected, virtual]

Creates a new AuthnRequestEvent for the event log.

Parameters:
application the Application associated with the event
request the HTTP client request associated with the event, or nullptr
Returns:
a fresh AuthnRequestEvent, prepopulated by the input parameters, or nullptr if an error occurs
const char* shibsp::SessionInitiator::remap ( const char *  src,
xmltooling::logging::Category &  log 
) const [virtual]

Remap a name (or return it unchanged).

Parameters:
src original name
log logger to use
Returns:
the name to use

Implements shibsp::DOMPropertySet::Remapper.

std::pair<bool,long> shibsp::SessionInitiator::run ( SPRequest request,
bool  isHandler = true 
) const [virtual]

Executes handler functionality as an incoming request.

Handlers can be run either directly by incoming web requests or indirectly/implicitly during other SP processing.

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.

virtual std::pair<bool,long> shibsp::SessionInitiator::run ( SPRequest request,
std::string &  entityID,
bool  isHandler = true 
) const [pure virtual]

Executes an incoming request.

SessionInitiators can be run either directly by incoming web requests or indirectly/implicitly during other SP processing.

Parameters:
request SP request context
entityID the name of an IdP to request a session from, if known
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

Friends And Related Function Documentation

void registerSessionInitiators (  )  [friend]

Registers SessionInitiator implementations.


Member Data Documentation

std::set<std::string> shibsp::SessionInitiator::m_supportedOptions [protected]

Set of optional settings supported by handler.


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

Generated on 15 Dec 2020 for shibboleth-3.2.0 by  doxygen 1.6.1