#include <shibsp/SessionCacheEx.h>
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. | |
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. | |
virtual void | remove (const Application &application, const char *key)=0 |
Deletes an existing session. |
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.
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 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.
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) |
virtual void shibsp::SessionCacheEx::remove | ( | const Application & | application, | |
const char * | key | |||
) | [pure virtual] |
Deletes an existing session.
application | reference to Application that owns the Session | |
key | session key |