shibboleth-2.6.0

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | List of all members
shibsp::SessionCacheEx Class Referenceabstract

Extended SessionCache API with additional capabilities. More...

`#include <shibsp/SessionCacheEx.h>`

Inheritance diagram for shibsp::SessionCacheEx:

## Public Member Functions
virtual std::vector< std::string >::size_type | logout (const Application &application, const opensaml::saml2md::EntityDescriptor *issuer, const opensaml::saml2::NameID &nameid, const std::set< std::string > *indexes, time_t expires, std::vector< std::string > &sessions)=0
| Returns active sessions that match particular parameters and records the logout to prevent race conditions. More...
virtual Session * | find (const Application &application, const char *key, const char *client_addr=nullptr, time_t *timeout=nullptr)=0
| Locates an existing session by ID. More...
virtual void | remove (const Application &application, const char *key)=0
| Deletes an existing session. More...
Public Member Functions inherited from shibsp::SessionCache
virtual void | insert (const Application &application, const xmltooling::HTTPRequest &httpRequest, xmltooling::HTTPResponse &httpResponse, time_t expires, const opensaml::saml2md::EntityDescriptor *issuer=nullptr, const XMLCh *protocol=nullptr, const opensaml::saml2::NameID *nameid=nullptr, const XMLCh *authn_instant=nullptr, const XMLCh *session_index=nullptr, const XMLCh *authncontext_class=nullptr, const XMLCh *authncontext_decl=nullptr, const std::vector< const opensaml::Assertion * > *tokens=nullptr, const std::vector< Attribute * > *attributes=nullptr)=0
virtual void | insert (std::string &sessionID, const Application &application, const xmltooling::HTTPRequest &httpRequest, xmltooling::HTTPResponse &httpResponse, time_t expires, const opensaml::saml2md::EntityDescriptor *issuer=nullptr, const XMLCh *protocol=nullptr, const opensaml::saml2::NameID *nameid=nullptr, const XMLCh *authn_instant=nullptr, const XMLCh *session_index=nullptr, const XMLCh *authncontext_class=nullptr, const XMLCh *authncontext_decl=nullptr, const std::vector< const opensaml::Assertion * > *tokens=nullptr, const std::vector< Attribute * > *attributes=nullptr)
| Inserts a new session into the cache and binds the session to the outgoing client response. More...
virtual bool | matches (const Application &application, const xmltooling::HTTPRequest &request, const opensaml::saml2md::EntityDescriptor *issuer, const opensaml::saml2::NameID &nameid, const std::set< std::string > *indexes)=0
| Determines whether the Session bound to a client request matches a set of input criteria. More...
virtual void | test ()=0
| Executes a test of the cache's general health.
virtual std::string | active (const Application &application, const xmltooling::HTTPRequest &request)=0
| Returns the ID of the session bound to the specified client request, if possible. More...
virtual Session * | find (const Application &application, const xmltooling::HTTPRequest &request, const char *client_addr=nullptr, time_t *timeout=nullptr)=0
| Locates an existing session bound to a request. More...
virtual Session * | find (const Application &application, xmltooling::HTTPRequest &request, const char *client_addr=nullptr, time_t *timeout=nullptr)
| Locates an existing session bound to a request. More...
virtual void | remove (const Application &application, const xmltooling::HTTPRequest &request, xmltooling::HTTPResponse *response=nullptr)=0
| Deletes an existing session bound to a request. More...

## Detailed Description

Extended SessionCache API with additional capabilities.

## Member Function Documentation

virtual Session* shibsp::SessionCacheEx::find | ( | const Application & | application,
|  | const char * | key,
|  | const char * | client_addr = `nullptr`,
|  | time_t * | timeout = `nullptr`
| ) |  |
| pure virtual

Locates an existing session by ID.

If the client address is supplied, then a check will be performed against the address recorded in the record.

Parameters

  application | reference to Application that owns the Session
  key | session key
  client_addr | network address of client (if known)
  timeout | inactivity timeout to enforce (0 for none, nullptr to bypass check/update of last access)

Returns
  pointer to locked Session, or nullptr

virtual std::vector<std::string>::size_type shibsp::SessionCacheEx::logout | ( | const Application & | application,
|  | const opensaml::saml2md::EntityDescriptor * | issuer,
|  | const opensaml::saml2::NameID & | nameid,
|  | const std::set< std::string > * | indexes,
|  | time_t | expires,
|  | std::vector< std::string > & | sessions
| ) |  |
| pure virtual

Returns active sessions that match particular parameters and records the logout to prevent race conditions.

On exit, the mapping between these sessions and the associated information MAY be removed by the cache, so subsequent calls to this method may not return anything.

Until logout expiration, any attempt to create a session with the same parameters will be blocked by the cache.

Parameters

  application | reference to Application that owns the session(s)
  issuer | source of session(s)
  nameid | name identifier associated with the session(s) to terminate
  indexes | indexes of sessions, or nullptr for all sessions associated with other parameters
  expires | logout expiration
  sessions | on exit, contains the IDs of the matching sessions found

virtual void shibsp::SessionCacheEx::remove | ( | const Application & | application,
|  | const char * | key
| ) |  |
| pure virtual

Deletes an existing session.

Parameters

  application | reference to Application that owns the Session
  key | session key

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

- shibsp/SessionCacheEx.h