Interface SessionOperations
-
- All Known Implementing Classes:
ClientSdkOperations
,LocalOperations
,MonitoredOperations
,StatelessOperations
public interface SessionOperations
Describes the ability to perform an operation on a Session. These operations are specific to the Session Service, therefore all will be keyed by the SessionID key. This abstraction layer is important as it will be implementation specific as to how this operation will be performed. Note: Session instances are the currency of theSession
Service. The aptly titledSessionService
deals with InternalSessions. The common currency between them is the SessionID which is suitably generic to use in this interface.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addSessionListener(Session session, String url)
Add a session listener notification url.boolean
checkSessionExists(SessionID sessionId)
Check whether a session identified by {code sessionId} can be retrieved.String
deferenceRestrictedID(Session session, SessionID restrictedID)
Given a restricted token, returns the SSOTokenID of the master token can only be used if the requester is an app tokenvoid
destroy(Session requester, Session session)
Destroys the Session by removing it and moving it to the DESTROY state.Collection<PartialSession>
getMatchingSessions(CrestQuery crestQuery)
Returns partial sessions from the session service backend that matches the provided CREST query.String
getRestrictedTokenId(SessionID masterSessionId, TokenRestriction restriction)
Gets the restricted token ID for a session.SessionInfo
getSessionInfo(SessionID sessionId, boolean reset)
Get the Session Info Object from the Session ID.SearchResults<SessionInfo>
getValidSessions(Session session, String pattern)
Returns all sessions which are accessible using the provided session for authorization, and which match the provided filter.void
logout(Session session)
Performs the logout operation on the Session.SessionInfo
refresh(Session session, boolean reset)
Performs a refresh of the Session and return a summary of the Session information.Session
resolveSession(SessionID sessionID)
Retrieves the Session from the Session ID.void
setExternalProperty(SSOToken clientToken, SessionID sessionId, String name, String value)
Sets an external property in the session.void
setProperty(Session session, String name, String value)
Assigns the property to the Session.
-
-
-
Method Detail
-
refresh
SessionInfo refresh(Session session, boolean reset) throws SessionException
Performs a refresh of the Session and return a summary of the Session information. This will optionally update the last modified timestamp of the Session. Note: This method is inconsistent from the other two in that it requires a Session reference. This is because of a dependency which could not be resolved without substantial refactoring in the Remote implementation.- Parameters:
reset
- If true, then update the last modified timestamp of the Session.session
- Reference to the Session.- Returns:
- Null if there was an error locating the Session, otherwise non null.
- Throws:
SessionException
-
destroy
void destroy(Session requester, Session session) throws SessionException
Destroys the Session by removing it and moving it to the DESTROY state. This operation is similar to the logout and uses similar behaviour.- Parameters:
requester
- The requester's non null session used to authorize the destroy operation.session
- The non null session to destroy.- Throws:
SessionException
- If there was an error while deleting the token.
-
setProperty
void setProperty(Session session, String name, String value) throws SessionException
Assigns the property to the Session.- Parameters:
session
- The session to perform the set on.name
- Non null name of the property.value
- Non null value.- Throws:
SessionException
- SessionException if the session reached its maximum session time, or the session was destroyed, or there was an error during communication with session service, or if the property name or value was null.
-
getSessionInfo
SessionInfo getSessionInfo(SessionID sessionId, boolean reset) throws SessionException
Get the Session Info Object from the Session ID.- Parameters:
sessionId
- the Session Id of the required Session Info.reset
- if true will cause the last access time on the session to be updated.- Returns:
- a Session Info object for the required session.
- Throws:
SessionException
- if the session could not be accessed.
-
addSessionListener
void addSessionListener(Session session, String url) throws SessionException
Add a session listener notification url. The url will receive a notification when session change events occur.- Parameters:
session
- the session to listen to.url
- the listener notification url- Throws:
SessionException
- if the session could not be accessed.
-
checkSessionExists
boolean checkSessionExists(SessionID sessionId) throws SessionException
Check whether a session identified by {code sessionId} can be retrieved.- Parameters:
sessionId
- the session ID to check.- Returns:
- returns true if the session is local
- Throws:
SessionException
- if the session could not be accessed.
-
getRestrictedTokenId
String getRestrictedTokenId(SessionID masterSessionId, TokenRestriction restriction) throws SessionException
Gets the restricted token ID for a session.- Parameters:
masterSessionId
- the master session id to get the restricted token id forrestriction
- the Token Restriction type to use- Returns:
- a Restricted token ID as a String
- Throws:
SessionException
- if the session could not be accessed.
-
deferenceRestrictedID
String deferenceRestrictedID(Session session, SessionID restrictedID) throws SessionException
Given a restricted token, returns the SSOTokenID of the master token can only be used if the requester is an app token- Parameters:
session
- Must be an app tokenrestrictedID
- The SSOTokenID of the restricted token- Returns:
- The SSOTokenID string of the master token
- Throws:
SessionException
- If the master token cannot be de-referenced
-
setExternalProperty
void setExternalProperty(SSOToken clientToken, SessionID sessionId, String name, String value) throws SessionException
Sets an external property in the session. If the property is protected then it will throw a SessionException.- Parameters:
clientToken
- SSO Token of the client setting external property.sessionId
- The Id of the session to set the property onname
- the name of the propertyvalue
- the new value of the property- Throws:
SessionException
- If the Session could not be accessed or the property is protected.
-
logout
void logout(Session session) throws SessionException
Performs the logout operation on the Session. This operation is intended to destroy the Session and perform any appropriate Session related logic.- Parameters:
session
- Session to logout.- Throws:
SessionException
-
resolveSession
Session resolveSession(SessionID sessionID) throws SessionException
Retrieves the Session from the Session ID.- Parameters:
sessionID
- the ID of the session to resolve- Returns:
- the Session Object
- Throws:
SessionException
- if the session could not be accessed.
-
getValidSessions
SearchResults<SessionInfo> getValidSessions(Session session, String pattern) throws SessionException
Returns all sessions which are accessible using the provided session for authorization, and which match the provided filter. Will return early if size or time limits are exceeded.- Parameters:
session
- The session to use for authorization.pattern
- The pattern to use to match the sessions.- Returns:
- The list of sessioninfos found, capped based on time and quantity.
- Throws:
SessionException
- If the request fails.
-
getMatchingSessions
Collection<PartialSession> getMatchingSessions(CrestQuery crestQuery) throws SessionException
Returns partial sessions from the session service backend that matches the provided CREST query. The resultset size is limited by the session service's "iplanet-am-session-max-session-list-size" attribute. The returned sessions are only "partial" sessions, meaning that they do not represent the full session state.- Parameters:
crestQuery
- The CREST query based on which we should look for matching sessions.- Returns:
- The collection of matching partial sessions.
- Throws:
SessionException
- If the request fails.
-
-