Package org.keycloak.models
Interface UserSessionProvider
-
- All Superinterfaces:
Provider
- All Known Implementing Classes:
InfinispanUserSessionProvider
,MapUserSessionProvider
public interface UserSessionProvider extends Provider
- Version:
- $Revision: 1 $
- Author:
- Bill Burke
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description void
close()
AuthenticatedClientSessionModel
createClientSession(RealmModel realm, ClientModel client, UserSessionModel userSession)
AuthenticatedClientSessionModel
createOfflineClientSession(AuthenticatedClientSessionModel clientSession, UserSessionModel offlineUserSession)
Will automatically attach newly created offline client session to the offlineUserSessionUserSessionModel
createOfflineUserSession(UserSessionModel userSession)
Newly created userSession won't contain attached AuthenticatedClientSessionsUserSessionModel
createUserSession(String id, RealmModel realm, UserModel user, String loginUsername, String ipAddress, String authMethod, boolean rememberMe, String brokerSessionId, String brokerUserId, UserSessionModel.SessionPersistenceState persistenceState)
UserSessionModel
createUserSession(RealmModel realm, UserModel user, String loginUsername, String ipAddress, String authMethod, boolean rememberMe, String brokerSessionId, String brokerUserId)
Map<String,Long>
getActiveClientSessionStats(RealmModel realm, boolean offline)
Returns a summary of client sessions key is client.getId()long
getActiveUserSessions(RealmModel realm, ClientModel client)
AuthenticatedClientSessionModel
getClientSession(UserSessionModel userSession, ClientModel client, String clientSessionId, boolean offline)
default AuthenticatedClientSessionModel
getClientSession(UserSessionModel userSession, ClientModel client, UUID clientSessionId, boolean offline)
Deprecated.KeycloakSession
getKeycloakSession()
Returns currently used Keycloak session.long
getOfflineSessionsCount(RealmModel realm, ClientModel client)
UserSessionModel
getOfflineUserSession(RealmModel realm, String userSessionId)
UserSessionModel
getOfflineUserSessionByBrokerSessionId(RealmModel realm, String brokerSessionId)
Stream<UserSessionModel>
getOfflineUserSessionByBrokerUserIdStream(RealmModel realm, String brokerUserId)
Obtains the offline user sessions associated with the user that matches the specifiedbrokerUserId
.Stream<UserSessionModel>
getOfflineUserSessionsStream(RealmModel realm, ClientModel client, Integer firstResult, Integer maxResults)
Obtains the offline user sessions associated with the specified client, starting from thefirstResult
and containing at mostmaxResults
.Stream<UserSessionModel>
getOfflineUserSessionsStream(RealmModel realm, UserModel user)
Obtains the offline user sessions associated with the specified user.int
getStartupTime(RealmModel realm)
UserSessionModel
getUserSession(RealmModel realm, String id)
UserSessionModel
getUserSessionByBrokerSessionId(RealmModel realm, String brokerSessionId)
Stream<UserSessionModel>
getUserSessionByBrokerUserIdStream(RealmModel realm, String brokerUserId)
Obtains the online user sessions associated with the user that matches the specifiedbrokerUserId
.Stream<UserSessionModel>
getUserSessionsStream(RealmModel realm, ClientModel client)
Obtains the online user sessions associated with the specified client.Stream<UserSessionModel>
getUserSessionsStream(RealmModel realm, ClientModel client, Integer firstResult, Integer maxResults)
Obtains the online user sessions associated with the specified client, starting from thefirstResult
and containing at mostmaxResults
.Stream<UserSessionModel>
getUserSessionsStream(RealmModel realm, UserModel user)
Obtains the online user sessions associated with the specified user.UserSessionModel
getUserSessionWithPredicate(RealmModel realm, String id, boolean offline, Predicate<UserSessionModel> predicate)
Return userSession of specified ID as long as the predicate passes.void
importUserSessions(Collection<UserSessionModel> persistentUserSessions, boolean offline)
Triggered by persister during pre-load.void
onClientRemoved(RealmModel realm, ClientModel client)
void
onRealmRemoved(RealmModel realm)
void
removeAllExpired()
Remove expired user sessions and client sessions in all the realmsvoid
removeExpired(RealmModel realm)
Removes expired user sessions owned by this realm from this provider.void
removeOfflineUserSession(RealmModel realm, UserSessionModel userSession)
Removes the attached clientSessions as wellvoid
removeUserSession(RealmModel realm, UserSessionModel session)
This will remove attached ClientLoginSessionModels toovoid
removeUserSessions(RealmModel realm)
void
removeUserSessions(RealmModel realm, UserModel user)
-
-
-
Method Detail
-
getKeycloakSession
KeycloakSession getKeycloakSession()
Returns currently used Keycloak session.- Returns:
KeycloakSession
-
createClientSession
AuthenticatedClientSessionModel createClientSession(RealmModel realm, ClientModel client, UserSessionModel userSession)
-
getClientSession
default AuthenticatedClientSessionModel getClientSession(UserSessionModel userSession, ClientModel client, UUID clientSessionId, boolean offline)
Deprecated.
-
getClientSession
AuthenticatedClientSessionModel getClientSession(UserSessionModel userSession, ClientModel client, String clientSessionId, boolean offline)
-
createUserSession
UserSessionModel createUserSession(RealmModel realm, UserModel user, String loginUsername, String ipAddress, String authMethod, boolean rememberMe, String brokerSessionId, String brokerUserId)
-
createUserSession
UserSessionModel createUserSession(String id, RealmModel realm, UserModel user, String loginUsername, String ipAddress, String authMethod, boolean rememberMe, String brokerSessionId, String brokerUserId, UserSessionModel.SessionPersistenceState persistenceState)
-
getUserSession
UserSessionModel getUserSession(RealmModel realm, String id)
-
getUserSessionsStream
Stream<UserSessionModel> getUserSessionsStream(RealmModel realm, UserModel user)
Obtains the online user sessions associated with the specified user.- Parameters:
realm
- a reference to the realm.user
- the user whose sessions are being searched.- Returns:
- a non-null
Stream
of online user sessions.
-
getUserSessionsStream
Stream<UserSessionModel> getUserSessionsStream(RealmModel realm, ClientModel client)
Obtains the online user sessions associated with the specified client.- Parameters:
realm
- a reference to the realm.client
- the client whose user sessions are being searched.- Returns:
- a non-null
Stream
of online user sessions.
-
getUserSessionsStream
Stream<UserSessionModel> getUserSessionsStream(RealmModel realm, ClientModel client, Integer firstResult, Integer maxResults)
Obtains the online user sessions associated with the specified client, starting from thefirstResult
and containing at mostmaxResults
.- Parameters:
realm
- a reference tot he realm.client
- the client whose user sessions are being searched.firstResult
- first result to return. Ignored if negative ornull
.maxResults
- maximum number of results to return. Ignored if negative ornull
.- Returns:
- a non-null
Stream
of online user sessions.
-
getUserSessionByBrokerUserIdStream
Stream<UserSessionModel> getUserSessionByBrokerUserIdStream(RealmModel realm, String brokerUserId)
Obtains the online user sessions associated with the user that matches the specifiedbrokerUserId
.- Parameters:
realm
- a reference to the realm.brokerUserId
- the id of the broker user whose sessions are being searched.- Returns:
- a non-null
Stream
of online user sessions.
-
getUserSessionByBrokerSessionId
UserSessionModel getUserSessionByBrokerSessionId(RealmModel realm, String brokerSessionId)
-
getUserSessionWithPredicate
UserSessionModel getUserSessionWithPredicate(RealmModel realm, String id, boolean offline, Predicate<UserSessionModel> predicate)
Return userSession of specified ID as long as the predicate passes. Otherwise returnsnull
. If predicate doesn't pass, implementation can do some best-effort actions to try have predicate passing (eg. download userSession from other DC)
-
getActiveUserSessions
long getActiveUserSessions(RealmModel realm, ClientModel client)
-
getActiveClientSessionStats
Map<String,Long> getActiveClientSessionStats(RealmModel realm, boolean offline)
Returns a summary of client sessions key is client.getId()- Parameters:
realm
-offline
-- Returns:
-
removeUserSession
void removeUserSession(RealmModel realm, UserSessionModel session)
This will remove attached ClientLoginSessionModels too
-
removeUserSessions
void removeUserSessions(RealmModel realm, UserModel user)
-
removeAllExpired
void removeAllExpired()
Remove expired user sessions and client sessions in all the realms
-
removeExpired
void removeExpired(RealmModel realm)
Removes expired user sessions owned by this realm from this provider. If this `UserSessionProvider` uses `UserSessionPersister`, the removal of the expireduser sessions
is also propagated to relevant `UserSessionPersister`.- Parameters:
realm
-RealmModel
Realm where all the expired user sessions to be removed from.
-
removeUserSessions
void removeUserSessions(RealmModel realm)
-
onRealmRemoved
void onRealmRemoved(RealmModel realm)
-
onClientRemoved
void onClientRemoved(RealmModel realm, ClientModel client)
-
createOfflineUserSession
UserSessionModel createOfflineUserSession(UserSessionModel userSession)
Newly created userSession won't contain attached AuthenticatedClientSessions
-
getOfflineUserSession
UserSessionModel getOfflineUserSession(RealmModel realm, String userSessionId)
-
removeOfflineUserSession
void removeOfflineUserSession(RealmModel realm, UserSessionModel userSession)
Removes the attached clientSessions as well
-
createOfflineClientSession
AuthenticatedClientSessionModel createOfflineClientSession(AuthenticatedClientSessionModel clientSession, UserSessionModel offlineUserSession)
Will automatically attach newly created offline client session to the offlineUserSession
-
getOfflineUserSessionsStream
Stream<UserSessionModel> getOfflineUserSessionsStream(RealmModel realm, UserModel user)
Obtains the offline user sessions associated with the specified user.- Parameters:
realm
- a reference to the realm.user
- the user whose offline sessions are being searched.- Returns:
- a non-null
Stream
of offline user sessions.
-
getOfflineUserSessionByBrokerSessionId
UserSessionModel getOfflineUserSessionByBrokerSessionId(RealmModel realm, String brokerSessionId)
-
getOfflineUserSessionByBrokerUserIdStream
Stream<UserSessionModel> getOfflineUserSessionByBrokerUserIdStream(RealmModel realm, String brokerUserId)
Obtains the offline user sessions associated with the user that matches the specifiedbrokerUserId
.- Parameters:
realm
- a reference to the realm.brokerUserId
- the id of the broker user whose sessions are being searched.- Returns:
- a non-null
Stream
of offline user sessions.
-
getOfflineSessionsCount
long getOfflineSessionsCount(RealmModel realm, ClientModel client)
-
getOfflineUserSessionsStream
Stream<UserSessionModel> getOfflineUserSessionsStream(RealmModel realm, ClientModel client, Integer firstResult, Integer maxResults)
Obtains the offline user sessions associated with the specified client, starting from thefirstResult
and containing at mostmaxResults
.- Parameters:
realm
- a reference tot he realm.client
- the client whose user sessions are being searched.firstResult
- first result to return. Ignored if negative ornull
.maxResults
- maximum number of results to return. Ignored if negative ornull
.- Returns:
- a non-null
Stream
of offline user sessions.
-
importUserSessions
void importUserSessions(Collection<UserSessionModel> persistentUserSessions, boolean offline)
Triggered by persister during pre-load. It imports authenticatedClientSessions too
-
getStartupTime
int getStartupTime(RealmModel realm)
-
-