shibsp::ServiceProvider Class Referenceabstract

Interface to a Shibboleth ServiceProvider instance. More...

`#include <shibsp/ServiceProvider.h>`

Inheritance diagram for shibsp::ServiceProvider:
[legend]
Collaboration diagram for shibsp::ServiceProvider:
[legend]

## Public Member Functions

virtual void | init ()=0
| Loads a configuration and prepares the instance for use. More...
virtual const XMLCh * | getConfigurationNamespace () const =0
| Get the "active" XML namespace of the underlying configuration. More...
virtual TransactionLog * | getTransactionLog () const =0
| Returns a TransactionLog instance. More...
virtual xmltooling::StorageService * | getStorageService (const char *id) const =0
| Returns a StorageService instance based on an ID. More...
virtual SessionCache * | getSessionCache (bool required=true) const =0
| Returns a SessionCache instance. More...
virtual ListenerService * | getListenerService (bool required=true) const =0
| Returns a ListenerService instance. More...
virtual SecurityPolicyProvider * | getSecurityPolicyProvider (bool required=true) const =0
| Returns a SecurityPolicyProvider instance. More...
virtual bool | setTransportOptions (xmltooling::SOAPTransport &transport) const =0
| Sets implementation-specific transport options. More...
virtual RequestMapper * | getRequestMapper (bool required=true) const =0
| Returns a RequestMapper instance. More...
virtual const Application * | getApplication (const char *applicationId) const =0
| Returns an Application instance matching the specified ID. More...
virtual std::pair< bool, long > | doAuthentication (SPRequest &request, bool handler=false) const
| Enforces requirements for an authenticated session. More...
virtual std::pair< bool, long > | doAuthorization (SPRequest &request) const
| Enforces authorization requirements based on the authenticated session. More...
virtual std::pair< bool, long > | doExport (SPRequest &request, bool requireSession=true) const
| Publishes session contents to the request in the form of headers or environment variables. More...
virtual std::pair< bool, long > | doHandler (SPRequest &request) const
| Services requests for registered Handler locations. More...
virtual void | regListener (const char *address, Remoted *svc)=0
| Register for a message. More...
virtual bool | unregListener (const char *address, Remoted *current)=0
| Unregisters service from an address, possibly restoring an original. More...
virtual Remoted * | lookupListener (const char *address) const =0
| Returns current service registered at an address, if any. More...
Public Member Functions inherited from shibsp::PropertySet
virtual const PropertySet * | getParent () const =0
| Returns parent of this PropertySet, if any. More...
virtual void | setParent (const PropertySet *parent)=0
| Establishes a "parent" PropertySet to supply inherited settings. More...
virtual std::pair< bool, bool > | getBool (const char *name, const char *ns=nullptr) const =0
| Returns a boolean-valued property. More...
virtual std::pair< bool, const char * > | getString (const char *name, const char *ns=nullptr) const =0
| Returns a string-valued property. More...
virtual std::pair< bool, const XMLCh * > | getXMLString (const char *name, const char *ns=nullptr) const =0
| Returns a Unicode string-valued property. More...
virtual std::pair< bool, unsigned int > | getUnsignedInt (const char *name, const char *ns=nullptr) const =0
| Returns an unsigned integer-valued property. More...
virtual std::pair< bool, int > | getInt (const char *name, const char *ns=nullptr) const =0
| Returns an integer-valued property. More...
virtual const PropertySet * | getPropertySet (const char *name, const char *ns=shibspconstants::ASCII_SHIBSPCONFIG_NS) const =0
| Returns a nested property set. More...
virtual const xercesc::DOMElement * | getElement () const =0
| Returns a DOM element representing the property container, if any. More...

## Protected Attributes

std::set< std::string > | m_authTypes
| The AuthTypes to "recognize" (defaults to "shibboleth").

## Detailed Description

Interface to a Shibboleth ServiceProvider instance.

A ServiceProvider exposes configuration and infrastructure services required by the SP implementation, allowing a flexible configuration format.

## Member Function Documentation

## doAuthentication()

virtual std::pair< bool, long > shibsp::ServiceProvider::doAuthentication | ( | SPRequest & | request,
|  | bool | handler = `false`
| ) |  | const

virtual

Enforces requirements for an authenticated session.

If the return value's first member is true, then request processing should terminate with the second member as a status value. If false, processing can continue.

Parameters

  request | SP request interface
  handler | true iff a request to a registered Handler location can be directly executed

Returns
  a pair containing a "request completed" indicator and a server-specific response code

## doAuthorization()

virtual std::pair< bool, long > shibsp::ServiceProvider::doAuthorization | ( | SPRequest & | request | ) | const

virtual

Enforces authorization requirements based on the authenticated session.

If the return value's first member is true, then request processing should terminate with the second member as a status value. If false, processing can continue.

Parameters

  request | SP request interface

Returns
  a pair containing a "request completed" indicator and a server-specific response code

## doExport()

virtual std::pair< bool, long > shibsp::ServiceProvider::doExport | ( | SPRequest & | request,
|  | bool | requireSession = `true`
| ) |  | const

virtual

Publishes session contents to the request in the form of headers or environment variables.

If the return value's first member is true, then request processing should terminate with the second member as a status value. If false, processing can continue.

Parameters

  request | SP request interface
  requireSession | set to true iff an error should result if no session exists

Returns
  a pair containing a "request completed" indicator and a server-specific response code

## doHandler()

virtual std::pair< bool, long > shibsp::ServiceProvider::doHandler | ( | SPRequest & | request | ) | const

virtual

Services requests for registered Handler locations.

If the return value's first member is true, then request processing should terminate with the second member as a status value. If false, processing can continue.

Parameters

  request | SP request interface

Returns
  a pair containing a "request completed" indicator and a server-specific response code

## getApplication()

virtual const Application * shibsp::ServiceProvider::getApplication | ( | const char * | applicationId | ) | const

pure virtual

Returns an Application instance matching the specified ID.

Parameters

  applicationId | the ID of the application, or nullptr for the default

Returns
  pointer to the application, or nullptr

Implemented in shibsp::XMLConfig.

## getConfigurationNamespace()

virtual const XMLCh * shibsp::ServiceProvider::getConfigurationNamespace | ( |  | ) | const

pure virtual

Get the "active" XML namespace of the underlying configuration.

This accomodates multiple supported configuration schemas at runtime by allowing components to tailor their behavior to the specific format in use.

Implemented in shibsp::XMLConfig.

## getListenerService()

virtual ListenerService * shibsp::ServiceProvider::getListenerService | ( | bool | required = `true` | ) | const

pure virtual

Returns a ListenerService instance.

Parameters

  required | true iff an exception should be thrown if no ListenerService is available

Returns
  a ListenerService

Implemented in shibsp::XMLConfig.

## getRequestMapper()

virtual RequestMapper * shibsp::ServiceProvider::getRequestMapper | ( | bool | required = `true` | ) | const

pure virtual

Returns a RequestMapper instance.

Parameters

  required | true iff an exception should be thrown if no RequestMapper is available

Returns
  a RequestMapper

Implemented in shibsp::XMLConfig.

## getSecurityPolicyProvider()

virtual SecurityPolicyProvider * shibsp::ServiceProvider::getSecurityPolicyProvider | ( | bool | required = `true` | ) | const

pure virtual

Returns a SecurityPolicyProvider instance.

Parameters

  required | true iff an exception should be thrown if no SecurityPolicyProvider is available

Returns
  a SecurityPolicyProvider

Implemented in shibsp::XMLConfig.

## getSessionCache()

virtual SessionCache * shibsp::ServiceProvider::getSessionCache | ( | bool | required = `true` | ) | const

pure virtual

Returns a SessionCache instance.

Parameters

  required | true iff an exception should be thrown if no SessionCache is available

Returns
  a SessionCache

Implemented in shibsp::XMLConfig.

## getStorageService()

virtual xmltooling::StorageService * shibsp::ServiceProvider::getStorageService | ( | const char * | id | ) | const

pure virtual

Returns a StorageService instance based on an ID.

Parameters

  id | a nullptr-terminated key identifying the StorageService to the configuration

Returns
  a StorageService if available, or nullptr

Implemented in shibsp::XMLConfig.

## getTransactionLog()

virtual TransactionLog * shibsp::ServiceProvider::getTransactionLog | ( |  | ) | const

pure virtual

Returns a TransactionLog instance.

Returns
  a TransactionLog instance

Implemented in shibsp::XMLConfig.

## init()

virtual void shibsp::ServiceProvider::init | ( |  | ) |

pure virtual

Loads a configuration and prepares the instance for use.

Implemented as a separate method so that services can rely on other services while they initialize by accessing the ServiceProvider from the SPConfig singleton.

Implemented in shibsp::XMLConfig.

## lookupListener()

virtual Remoted * shibsp::ServiceProvider::lookupListener | ( | const char * | address | ) | const

pure virtual

Returns current service registered at an address, if any.

Parameters

  address | message address to access

Returns
  registered service, or nullptr

Implemented in shibsp::XMLConfig.

## regListener()

virtual void shibsp::ServiceProvider::regListener | ( | const char * | address,
|  | Remoted * | svc
| ) |  |

pure virtual

Register for a message.

Parameters

  address | message address to register
  svc | pointer to remote service

Implemented in shibsp::XMLConfig.

## setTransportOptions()

virtual bool shibsp::ServiceProvider::setTransportOptions | ( | xmltooling::SOAPTransport & | transport | ) | const

pure virtual

Sets implementation-specific transport options.

Parameters

  transport | a SOAPTransport object

Returns
  true iff all options were successfully set

Implemented in shibsp::XMLConfig.

## unregListener()

virtual bool shibsp::ServiceProvider::unregListener | ( | const char * | address,
|  | Remoted * | current
| ) |  |

pure virtual

Unregisters service from an address, possibly restoring an original.

Parameters

  address | message address to modify
  current | pointer to unregistering service

Returns
  true iff the current service was still registered

Implemented in shibsp::XMLConfig.

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

- shibsp/ServiceProvider.h