public class MapUserSessionProvider<UK,CK> extends Object implements UserSessionProvider
Modifier and Type | Field and Description |
---|---|
protected MapKeycloakTransaction<CK,MapAuthenticatedClientSessionEntity<CK>,AuthenticatedClientSessionModel> |
clientSessionTx |
protected MapKeycloakTransaction<UK,MapUserSessionEntity<UK>,UserSessionModel> |
userSessionTx |
Constructor and Description |
---|
MapUserSessionProvider(KeycloakSession session,
MapStorage<UK,MapUserSessionEntity<UK>,UserSessionModel> userSessionStore,
MapStorage<CK,MapAuthenticatedClientSessionEntity<CK>,AuthenticatedClientSessionModel> clientSessionStore) |
Modifier and Type | Method and 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 offlineUserSession
|
UserSessionModel |
createOfflineUserSession(UserSessionModel userSession)
Newly created userSession won't contain attached AuthenticatedClientSessions
|
UserSessionModel |
createUserSession(RealmModel realm,
UserModel user,
String loginUsername,
String ipAddress,
String authMethod,
boolean rememberMe,
String brokerSessionId,
String brokerUserId) |
UserSessionModel |
createUserSession(String id,
RealmModel realm,
UserModel user,
String loginUsername,
String ipAddress,
String authMethod,
boolean rememberMe,
String brokerSessionId,
String brokerUserId,
UserSessionModel.SessionPersistenceState persistenceState) |
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) |
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 specified
brokerUserId . |
Stream<UserSessionModel> |
getOfflineUserSessionsStream(RealmModel realm,
ClientModel client,
Integer firstResult,
Integer maxResults)
Obtains the offline user sessions associated with the specified client, starting from the
firstResult and
containing at most maxResults . |
Stream<UserSessionModel> |
getOfflineUserSessionsStream(RealmModel realm,
UserModel user)
Obtains the offline user sessions associated with the specified user.
|
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 specified
brokerUserId . |
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 the
firstResult and containing
at most maxResults . |
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 realms
|
void |
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 well
|
void |
removeUserSession(RealmModel realm,
UserSessionModel session)
This will remove attached ClientLoginSessionModels too
|
void |
removeUserSessions(RealmModel realm) |
void |
removeUserSessions(RealmModel realm,
UserModel user) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addUserLoginFailure, getClientSession, getOfflineUserSessionByBrokerUserId, getOfflineUserSessions, getOfflineUserSessions, getUserLoginFailure, getUserSessionByBrokerUserId, getUserSessions, getUserSessions, getUserSessions, removeAllUserLoginFailures, removeUserLoginFailure
protected final MapKeycloakTransaction<UK,MapUserSessionEntity<UK>,UserSessionModel> userSessionTx
protected final MapKeycloakTransaction<CK,MapAuthenticatedClientSessionEntity<CK>,AuthenticatedClientSessionModel> clientSessionTx
public MapUserSessionProvider(KeycloakSession session, MapStorage<UK,MapUserSessionEntity<UK>,UserSessionModel> userSessionStore, MapStorage<CK,MapAuthenticatedClientSessionEntity<CK>,AuthenticatedClientSessionModel> clientSessionStore)
public KeycloakSession getKeycloakSession()
UserSessionProvider
getKeycloakSession
in interface UserSessionProvider
KeycloakSession
public AuthenticatedClientSessionModel createClientSession(RealmModel realm, ClientModel client, UserSessionModel userSession)
createClientSession
in interface UserSessionProvider
public AuthenticatedClientSessionModel getClientSession(UserSessionModel userSession, ClientModel client, String clientSessionId, boolean offline)
getClientSession
in interface UserSessionProvider
public UserSessionModel createUserSession(RealmModel realm, UserModel user, String loginUsername, String ipAddress, String authMethod, boolean rememberMe, String brokerSessionId, String brokerUserId)
createUserSession
in interface UserSessionProvider
public UserSessionModel createUserSession(String id, RealmModel realm, UserModel user, String loginUsername, String ipAddress, String authMethod, boolean rememberMe, String brokerSessionId, String brokerUserId, UserSessionModel.SessionPersistenceState persistenceState)
createUserSession
in interface UserSessionProvider
public UserSessionModel getUserSession(RealmModel realm, String id)
getUserSession
in interface UserSessionProvider
public Stream<UserSessionModel> getUserSessionsStream(RealmModel realm, UserModel user)
UserSessionProvider
getUserSessionsStream
in interface UserSessionProvider
realm
- a reference to the realm.user
- the user whose sessions are being searched.Stream
of online user sessions.public Stream<UserSessionModel> getUserSessionsStream(RealmModel realm, ClientModel client)
UserSessionProvider
getUserSessionsStream
in interface UserSessionProvider
realm
- a reference to the realm.client
- the client whose user sessions are being searched.Stream
of online user sessions.public Stream<UserSessionModel> getUserSessionsStream(RealmModel realm, ClientModel client, Integer firstResult, Integer maxResults)
UserSessionProvider
firstResult
and containing
at most maxResults
.getUserSessionsStream
in interface UserSessionProvider
realm
- a reference tot he realm.client
- the client whose user sessions are being searched.firstResult
- first result to return. Ignored if negative or null
.maxResults
- maximum number of results to return. Ignored if negative or null
.Stream
of online user sessions.public Stream<UserSessionModel> getUserSessionByBrokerUserIdStream(RealmModel realm, String brokerUserId)
UserSessionProvider
brokerUserId
.getUserSessionByBrokerUserIdStream
in interface UserSessionProvider
realm
- a reference to the realm.brokerUserId
- the id of the broker user whose sessions are being searched.Stream
of online user sessions.public UserSessionModel getUserSessionByBrokerSessionId(RealmModel realm, String brokerSessionId)
getUserSessionByBrokerSessionId
in interface UserSessionProvider
public UserSessionModel getUserSessionWithPredicate(RealmModel realm, String id, boolean offline, Predicate<UserSessionModel> predicate)
UserSessionProvider
null
.
If predicate doesn't pass, implementation can do some best-effort actions to try have predicate passing (eg. download userSession from other DC)getUserSessionWithPredicate
in interface UserSessionProvider
public long getActiveUserSessions(RealmModel realm, ClientModel client)
getActiveUserSessions
in interface UserSessionProvider
public Map<String,Long> getActiveClientSessionStats(RealmModel realm, boolean offline)
UserSessionProvider
getActiveClientSessionStats
in interface UserSessionProvider
public void removeUserSession(RealmModel realm, UserSessionModel session)
UserSessionProvider
removeUserSession
in interface UserSessionProvider
public void removeUserSessions(RealmModel realm, UserModel user)
removeUserSessions
in interface UserSessionProvider
public void removeAllExpired()
UserSessionProvider
removeAllExpired
in interface UserSessionProvider
public void removeExpired(RealmModel realm)
UserSessionProvider
user sessions
is also propagated to relevant `UserSessionPersister`.removeExpired
in interface UserSessionProvider
realm
- RealmModel
Realm where all the expired user sessions to be removed from.public void removeUserSessions(RealmModel realm)
removeUserSessions
in interface UserSessionProvider
public void onRealmRemoved(RealmModel realm)
onRealmRemoved
in interface UserSessionProvider
public void onClientRemoved(RealmModel realm, ClientModel client)
onClientRemoved
in interface UserSessionProvider
public UserSessionModel createOfflineUserSession(UserSessionModel userSession)
UserSessionProvider
createOfflineUserSession
in interface UserSessionProvider
public UserSessionModel getOfflineUserSession(RealmModel realm, String userSessionId)
getOfflineUserSession
in interface UserSessionProvider
public void removeOfflineUserSession(RealmModel realm, UserSessionModel userSession)
UserSessionProvider
removeOfflineUserSession
in interface UserSessionProvider
public AuthenticatedClientSessionModel createOfflineClientSession(AuthenticatedClientSessionModel clientSession, UserSessionModel offlineUserSession)
UserSessionProvider
createOfflineClientSession
in interface UserSessionProvider
public Stream<UserSessionModel> getOfflineUserSessionsStream(RealmModel realm, UserModel user)
UserSessionProvider
getOfflineUserSessionsStream
in interface UserSessionProvider
realm
- a reference to the realm.user
- the user whose offline sessions are being searched.Stream
of offline user sessions.public UserSessionModel getOfflineUserSessionByBrokerSessionId(RealmModel realm, String brokerSessionId)
getOfflineUserSessionByBrokerSessionId
in interface UserSessionProvider
public Stream<UserSessionModel> getOfflineUserSessionByBrokerUserIdStream(RealmModel realm, String brokerUserId)
UserSessionProvider
brokerUserId
.getOfflineUserSessionByBrokerUserIdStream
in interface UserSessionProvider
realm
- a reference to the realm.brokerUserId
- the id of the broker user whose sessions are being searched.Stream
of offline user sessions.public long getOfflineSessionsCount(RealmModel realm, ClientModel client)
getOfflineSessionsCount
in interface UserSessionProvider
public Stream<UserSessionModel> getOfflineUserSessionsStream(RealmModel realm, ClientModel client, Integer firstResult, Integer maxResults)
UserSessionProvider
firstResult
and
containing at most maxResults
.getOfflineUserSessionsStream
in interface UserSessionProvider
realm
- a reference tot he realm.client
- the client whose user sessions are being searched.firstResult
- first result to return. Ignored if negative or null
.maxResults
- maximum number of results to return. Ignored if negative or null
.Stream
of offline user sessions.public void importUserSessions(Collection<UserSessionModel> persistentUserSessions, boolean offline)
UserSessionProvider
importUserSessions
in interface UserSessionProvider
public void close()
close
in interface UserSessionProvider
close
in interface Provider
Copyright © 2021 JBoss by Red Hat. All rights reserved.