|
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...
|
|
Creates and manages user sessions.
The cache abstracts a persistent (meaning across requests) cache of instances of the Session interface. Creation of new entries and entry lookup are confined to this interface to enable the implementation to remote and/or optimize calls by implementing custom versions of the Session interface as required.
virtual Session* shibsp::SessionCache::find |
( |
const Application & |
application, |
|
|
xmltooling::HTTPRequest & |
request, |
|
|
const char * |
client_addr = nullptr , |
|
|
time_t * |
timeout = nullptr |
|
) |
| |
|
virtual |
Locates an existing session bound to a request.
If the client address is supplied, then a check will be performed against the address recorded in the record.
If a bound session is found to have expired, be invalid, etc., and if the request can be used to "clear" the session from subsequent client requests, then it may be cleared.
- Parameters
-
application | reference to Application that owns the Session |
request | request from client bound to session |
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