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 the Session Service. The aptly titled SessionService deals with InternalSessions. The common currency between them is the SessionID which is suitably generic to use in this interface.
    • 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 for
        restriction - 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 token
        restrictedID - 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 on
        name - the name of the property
        value - 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.