Interface UserSessionPersisterProvider

All Superinterfaces:
Provider
All Known Implementing Classes:
DisabledUserSessionPersisterProvider, JpaUserSessionPersisterProvider

public interface UserSessionPersisterProvider extends Provider
Author:
Marek Posolda
  • Method Details

    • createUserSession

      void createUserSession(UserSessionModel userSession, boolean offline)
    • createClientSession

      void createClientSession(AuthenticatedClientSessionModel clientSession, boolean offline)
    • removeUserSession

      void removeUserSession(String userSessionId, boolean offline)
    • removeClientSession

      void removeClientSession(String userSessionId, String clientUUID, boolean offline)
    • onRealmRemoved

      void onRealmRemoved(RealmModel realm)
    • onClientRemoved

      void onClientRemoved(RealmModel realm, ClientModel client)
    • onUserRemoved

      void onUserRemoved(RealmModel realm, UserModel user)
    • updateLastSessionRefreshes

      void updateLastSessionRefreshes(RealmModel realm, int lastSessionRefresh, Collection<String> userSessionIds, boolean offline)
    • removeExpired

      void removeExpired(RealmModel realm)
    • loadUserSession

      UserSessionModel loadUserSession(RealmModel realm, String userSessionId, boolean offline)
      Loads the user session with the given userSessionId.
      Parameters:
      userSessionId -
      offline -
      Returns:
    • loadUserSessionsStream

      Stream<UserSessionModel> loadUserSessionsStream(RealmModel realm, UserModel user, boolean offline, Integer firstResult, Integer maxResults)
      Loads the user sessions for the given UserModel in the given RealmModel if present.
      Parameters:
      realm -
      user -
      offline -
      firstResult -
      maxResults -
      Returns:
    • loadUserSessionsStream

      Stream<UserSessionModel> loadUserSessionsStream(RealmModel realm, ClientModel client, boolean offline, Integer firstResult, Integer maxResults)
      Loads the user sessions for the given ClientModel in the given RealmModel if present.
      Parameters:
      realm -
      client -
      offline -
      firstResult -
      maxResults -
      Returns:
    • loadUserSessionsStreamByBrokerSessionId

      default UserSessionModel loadUserSessionsStreamByBrokerSessionId(RealmModel realm, String brokerSessionId, boolean offline)
    • loadUserSessionsStream

      Stream<UserSessionModel> loadUserSessionsStream(Integer firstResult, Integer maxResults, boolean offline, String lastUserSessionId)
      Called during startup. For each userSession, it loads also clientSessions.
      Parameters:
      firstResult - Integer Index of the first desired user session. Ignored if negative or null.
      maxResults - Integer Maximum number of returned user sessions. Ignored if negative or null.
      offline - boolean Flag to include offline sessions.
      lastUserSessionId - String Id of the user session. It will return only user sessions with id's lexicographically greater than this. it will compare the id in dictionary order and takes only those created later.
      Returns:
      Stream of UserSessionModel. Never returns null.
    • loadClientSession

      AuthenticatedClientSessionModel loadClientSession(RealmModel realm, ClientModel client, UserSessionModel userSession, boolean offline)
      Loads client session from the db by provided user session and client.
      Parameters:
      realm - RealmModel Realm for the associated client session.
      client - ClientModel Client used for the creation of client session.
      userSession - UserSessionModel User session for the associated client session.
      offline - boolean Flag that indicates the client session should be online/offline.
      Returns:
      Client session according the provided criteria or null if not found.
    • getUserSessionsCount

      int getUserSessionsCount(boolean offline)
      Retrieves the count of user sessions for all realms.
      Parameters:
      offline -
      Returns:
    • getUserSessionsCount

      int getUserSessionsCount(RealmModel realm, ClientModel clientModel, boolean offline)
      Retrieves the count of user client-sessions for the given client
      Parameters:
      realm -
      clientModel -
      offline -
      Returns:
    • getUserSessionsCountsByClients

      Map<String,Long> getUserSessionsCountsByClients(RealmModel realm, boolean offline)
      Returns a Map containing the number of user-sessions aggregated by client id for the given realm.
      Parameters:
      realm -
      offline -
      Returns:
      the count Map with clientId as key and session count as value
    • removeUserSessions

      default void removeUserSessions(RealmModel realm, boolean offline)
      Remove the online user sessions for this realm.