Class UserSessionUpdater
java.lang.Object
org.keycloak.models.sessions.infinispan.changes.remote.updater.BaseUpdater<String,RemoteUserSessionEntity>
org.keycloak.models.sessions.infinispan.changes.remote.updater.user.UserSessionUpdater
- All Implemented Interfaces:
BiFunction<String,,RemoteUserSessionEntity, RemoteUserSessionEntity> Updater<String,,RemoteUserSessionEntity> UserSessionModel
public class UserSessionUpdater
extends BaseUpdater<String,RemoteUserSessionEntity>
implements UserSessionModel
The
Updater implementation to keep track of modifications for UserSessionModel.-
Nested Class Summary
Nested classes/interfaces inherited from class org.keycloak.models.sessions.infinispan.changes.remote.updater.BaseUpdater
BaseUpdater.UpdaterStateNested classes/interfaces inherited from interface org.keycloak.models.UserSessionModel
UserSessionModel.SessionPersistenceState, UserSessionModel.State -
Field Summary
Fields inherited from interface org.keycloak.models.sessions.infinispan.changes.remote.updater.Updater
NO_VERSIONFields inherited from interface org.keycloak.models.UserSessionModel
CORRESPONDING_SESSION_ID -
Method Summary
Modifier and TypeMethodDescriptionapply(String ignored, RemoteUserSessionEntity userSessionEntity) Computes the expiration data for Infinispan cache.getAuthenticatedClientSessionByClient(String clientUUID) Returns a client session for the given client UUID.Returns map where key is ID of the client (its UUID) and value is ID respectiveAuthenticatedClientSessionModelobject.If created via a broker external login, this is an identifier that can be used to match external broker backchannel logout requests to a UserSessiongetId()Note: will not be an address when a proxy does not provide a valid oneintgetNotes()getRealm()intgetState()getUser()voidinitialize(UserSessionModel.SessionPersistenceState persistenceState, RealmModel realm, UserModel user, Map<String, AuthenticatedClientSessionModel> clientSessions) Initializes this class with references to other models classes.booleanbooleanbooleanbooleanprotected booleanvoidremoveAuthenticatedClientSessions(Collection<String> removedClientUUIDS) Removes authenticated client sessions for all clients whose UUID is present inremovedClientUUIDSparameter.voidremoveNote(String name) voidrestartSession(RealmModel realm, UserModel user, String loginUsername, String ipAddress, String authMethod, boolean rememberMe, String brokerSessionId, String brokerUserId) voidsetLastSessionRefresh(int seconds) Set the last session refresh timestamp for the user session.voidvoidsetState(UserSessionModel.State state) Methods inherited from class org.keycloak.models.sessions.infinispan.changes.remote.updater.BaseUpdater
equals, getKey, getValue, getVersionRead, hashCode, isCreated, isDeleted, isReadOnly, markDeleted, toStringMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.function.BiFunction
andThenMethods inherited from interface org.keycloak.models.sessions.infinispan.changes.remote.updater.Updater
hasVersion
-
Method Details
-
onlineFactory
- Returns:
- The
UpdaterFactoryimplementation to create online sessions instances ofUserSessionModel.
-
offlineFactory
- Returns:
- The
UpdaterFactoryimplementation to create offline sessions instances ofUserSessionModel.
-
apply
- Specified by:
applyin interfaceBiFunction<String,RemoteUserSessionEntity, RemoteUserSessionEntity>
-
computeExpiration
Description copied from interface:UpdaterComputes the expiration data for Infinispan cache.- Specified by:
computeExpirationin interfaceUpdater<String,RemoteUserSessionEntity> - Returns:
- The
Expirationdata.
-
getId
- Specified by:
getIdin interfaceUserSessionModel
-
getRealm
- Specified by:
getRealmin interfaceUserSessionModel
-
getBrokerSessionId
Description copied from interface:UserSessionModelIf created via a broker external login, this is an identifier that can be used to match external broker backchannel logout requests to a UserSession- Specified by:
getBrokerSessionIdin interfaceUserSessionModel- Returns:
-
getBrokerUserId
- Specified by:
getBrokerUserIdin interfaceUserSessionModel
-
getUser
- Specified by:
getUserin interfaceUserSessionModel
-
getLoginUsername
- Specified by:
getLoginUsernamein interfaceUserSessionModel
-
getIpAddress
Description copied from interface:UserSessionModelNote: will not be an address when a proxy does not provide a valid one- Specified by:
getIpAddressin interfaceUserSessionModel- Returns:
- the ip address
-
getAuthMethod
- Specified by:
getAuthMethodin interfaceUserSessionModel
-
isRememberMe
public boolean isRememberMe()- Specified by:
isRememberMein interfaceUserSessionModel
-
getStarted
public int getStarted()- Specified by:
getStartedin interfaceUserSessionModel
-
getLastSessionRefresh
public int getLastSessionRefresh()- Specified by:
getLastSessionRefreshin interfaceUserSessionModel
-
setLastSessionRefresh
public void setLastSessionRefresh(int seconds) Description copied from interface:UserSessionModelSet the last session refresh timestamp for the user session. If the timestamp is smaller or equal than the current timestamp, the operation is ignored.- Specified by:
setLastSessionRefreshin interfaceUserSessionModel
-
isOffline
public boolean isOffline()- Specified by:
isOfflinein interfaceUserSessionModel
-
getAuthenticatedClientSessions
Description copied from interface:UserSessionModelReturns map where key is ID of the client (its UUID) and value is ID respectiveAuthenticatedClientSessionModelobject.- Specified by:
getAuthenticatedClientSessionsin interfaceUserSessionModel- Returns:
-
removeAuthenticatedClientSessions
Description copied from interface:UserSessionModelRemoves authenticated client sessions for all clients whose UUID is present inremovedClientUUIDSparameter.- Specified by:
removeAuthenticatedClientSessionsin interfaceUserSessionModel
-
getAuthenticatedClientSessionByClient
Description copied from interface:UserSessionModelReturns a client session for the given client UUID.- Specified by:
getAuthenticatedClientSessionByClientin interfaceUserSessionModel- Returns:
-
getNote
- Specified by:
getNotein interfaceUserSessionModel
-
setNote
- Specified by:
setNotein interfaceUserSessionModel
-
removeNote
- Specified by:
removeNotein interfaceUserSessionModel
-
getNotes
- Specified by:
getNotesin interfaceUserSessionModel
-
getState
- Specified by:
getStatein interfaceUserSessionModel
-
setState
- Specified by:
setStatein interfaceUserSessionModel
-
restartSession
public void restartSession(RealmModel realm, UserModel user, String loginUsername, String ipAddress, String authMethod, boolean rememberMe, String brokerSessionId, String brokerUserId) - Specified by:
restartSessionin interfaceUserSessionModel
-
getPersistenceState
- Specified by:
getPersistenceStatein interfaceUserSessionModel- Returns:
- Persistence state of the session
-
isTransient
public boolean isTransient()- Specified by:
isTransientin interfaceUpdater<String,RemoteUserSessionEntity> - Overrides:
isTransientin classBaseUpdater<String,RemoteUserSessionEntity> - Returns:
trueif the entity is transient and shouldn't be stored in the Infinispan cache.
-
isUnchanged
protected boolean isUnchanged()- Specified by:
isUnchangedin classBaseUpdater<String,RemoteUserSessionEntity> - Returns:
trueif the entity was changed after being created/read.
-
initialize
public void initialize(UserSessionModel.SessionPersistenceState persistenceState, RealmModel realm, UserModel user, Map<String, AuthenticatedClientSessionModel> clientSessions) Initializes this class with references to other models classes.- Parameters:
persistenceState- TheUserSessionModel.SessionPersistenceState.realm- TheRealmModelto where this user session belongs.user- TheUserModelassociated to this user session.clientSessions- TheMapassociated to this use session.
-
isInitialized
public boolean isInitialized()- Returns:
trueif it is already initialized.
-