Interface SessionManager

  • All Known Implementing Classes:
    SessionManagerImpl

    public interface SessionManager
    Responsible for holding onto Session instances for optimized login. SessionManager implementations should strive to be only in-memory representations of the database used as a performance optimization. When possible, all changes should be made to the database as quickly and as synchronously as possible.
    Since:
    3.0-Beta3
    • Method Detail

      • createWithAgent

        ome.model.meta.Session createWithAgent​(ome.system.Principal principal,
                                               java.lang.String credentials,
                                               java.lang.String agent,
                                               java.lang.String ip)
        Parameters:
        principal -
        credentials -
        agent -
        ip -
        Returns:
        Not null. Instead an exception will be thrown.
      • createWithAgent

        ome.model.meta.Session createWithAgent​(ome.system.Principal principal,
                                               java.lang.String agent,
                                               java.lang.String ip)
        Parameters:
        principal -
        agent -
        ip -
        Returns:
        Not null. Instead an exception will be thrown.
      • createShare

        ome.model.meta.Share createShare​(ome.system.Principal principal,
                                         boolean enabled,
                                         long timeToLive,
                                         java.lang.String eventType,
                                         java.lang.String description,
                                         long groupId)
        Parameters:
        principal -
        enabled -
        timeToLive -
        eventType -
        description -
        groupId -
        Returns:
        Not null. Instead an exception will be thrown.
      • setSecurityContext

        ome.model.IObject setSecurityContext​(ome.system.Principal principal,
                                             ome.model.IObject obj)
        Sets the context for the current session to the given value. If it is an ExperimenterGroup then the active group is changed, and any active shares are deactivated. If it is an Share then the share is activate (the group is left alone). Unless otherwise specified, the user's default group is used as the initial context. Passing any other object will result in an ApiUsageException.
        Parameters:
        principal - Principal for which the context should be set.
        obj - IObject which represents the new context.
        Returns:
        See above.
      • detach

        int detach​(java.lang.String uuid)
        Allows decrementing the reference count for a session without calling the actual close(String) logic. This is useful when it is assumed that another user will re-attach to the same session. A timeout can still cause the session to be removed.
        Parameters:
        uuid -
        Returns:
        See above.
      • getReferenceCount

        int getReferenceCount​(java.lang.String uuid)
        Return the number of client which are presumed to be attached to this session or throw an exception if there's no such session.
      • getSessionStats

        SessionStats getSessionStats​(java.lang.String uuid)
        Return the SessionStats which are being counted for the given session or throw an exception if it has been removed.
      • findSameUser

        java.util.List<ome.model.meta.Session> findSameUser​(java.lang.String uuid,
                                                            java.lang.String... agent)
        Returns a non-null, possibly empty list of session instances belonging to the same user as the given session with one of the given agents. Sudo is taken into account. If the agent list is empty then all are included. A null may be included in the list to include null agents.
      • getSessionData

        java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.lang.Object>> getSessionData()
        Return all sessions that are active with associated possibly varying session data information.
      • close

        int close​(java.lang.String uuid)
        If reference count for the session is less than 1, close the session. Otherwise decrement the reference count. The current reference count is returned. If -1, then no such session existed. If -2, then the session was removed.
      • closeAll

        int closeAll()
        Close all sessions with checking for the necessary reference counts.
      • getUserRoles

        java.util.List<java.lang.String> getUserRoles​(java.lang.String uuid)
      • executePasswordCheck

        boolean executePasswordCheck​(java.lang.String name,
                                     java.lang.String credentials)
        Executes a password check using the Executor framework. Also checks the credentials against current session uuids.
        Parameters:
        name -
        credentials -
        Returns:
        See above.
      • inMemoryCache

        net.sf.ehcache.Ehcache inMemoryCache​(java.lang.String uuid)
        Returns after possibly creating an in-memory cache which can be used throughout the session. On close, the cache will be disposed.
      • onDiskCache

        net.sf.ehcache.Ehcache onDiskCache​(java.lang.String uuid)
        Returns after possibly creating an on-disk cache which can be used throughout the session. On close, the cache will be disposed.
      • getInput

        java.lang.Object getInput​(java.lang.String session,
                                  java.lang.String key)
                           throws ome.conditions.RemovedSessionException
        Returns the input environment Object stored under the given key or null if none present. Throws an exception if there is no Session with the given identifier.
        Parameters:
        session - Not null.
        key - Not null.
        Returns:
        Possibly null.
        Throws:
        ome.conditions.RemovedSessionException
      • getOutput

        java.lang.Object getOutput​(java.lang.String session,
                                   java.lang.String key)
                            throws ome.conditions.RemovedSessionException
        Returns the output environment Object stored under the given key or null if none present. Throws an exception if there is no Session with the given identifier.
        Parameters:
        session - Not null.
        key - Not null.
        Returns:
        Possibly null.
        Throws:
        ome.conditions.RemovedSessionException
      • setInput

        void setInput​(java.lang.String session,
                      java.lang.String key,
                      java.lang.Object object)
               throws ome.conditions.RemovedSessionException
        Places the argument in the input environment under the given key, possibly initializing the Map Throws an exception if there is no Session with the given identifier.
        Parameters:
        session - Not null.
        key - Not null.
        object - If null, key will be removed.
        Throws:
        ome.conditions.RemovedSessionException
      • setOutput

        void setOutput​(java.lang.String session,
                       java.lang.String key,
                       java.lang.Object object)
                throws ome.conditions.RemovedSessionException
        Places the argument in the output environment under the given key, possibly initializing the Map Throws an exception if there is no Session with the given identifier.
        Parameters:
        session - Not null.
        key - Not null.
        object - If null, key will be removed.
        Throws:
        ome.conditions.RemovedSessionException
      • inputEnvironment

        java.util.Map<java.lang.String,​java.lang.Object> inputEnvironment​(java.lang.String session)
        Returns a copy of the input environment.
        Parameters:
        session - The session id.
        Returns:
        Not null
      • outputEnvironment

        java.util.Map<java.lang.String,​java.lang.Object> outputEnvironment​(java.lang.String session)
        Returns a copy of the output environment.
        Parameters:
        session - The session id.
        Returns:
        Not null.