public class InfinispanUserSessionProvider extends Object implements UserSessionProvider
Constructor and Description |
---|
InfinispanUserSessionProvider(KeycloakSession session,
RemoteCacheInvoker remoteCacheInvoker,
CrossDCLastSessionRefreshStore lastSessionRefreshStore,
CrossDCLastSessionRefreshStore offlineLastSessionRefreshStore,
PersisterLastSessionRefreshStore persisterLastSessionRefreshStore,
InfinispanKeyGenerator keyGenerator,
org.infinispan.Cache<String,SessionEntityWrapper<UserSessionEntity>> sessionCache,
org.infinispan.Cache<String,SessionEntityWrapper<UserSessionEntity>> offlineSessionCache,
org.infinispan.Cache<UUID,SessionEntityWrapper<AuthenticatedClientSessionEntity>> clientSessionCache,
org.infinispan.Cache<UUID,SessionEntityWrapper<AuthenticatedClientSessionEntity>> offlineClientSessionCache,
org.infinispan.Cache<LoginFailureKey,SessionEntityWrapper<LoginFailureEntity>> loginFailureCache) |
protected final KeycloakSession session
protected final org.infinispan.Cache<String,SessionEntityWrapper<UserSessionEntity>> sessionCache
protected final org.infinispan.Cache<String,SessionEntityWrapper<UserSessionEntity>> offlineSessionCache
protected final org.infinispan.Cache<UUID,SessionEntityWrapper<AuthenticatedClientSessionEntity>> clientSessionCache
protected final org.infinispan.Cache<UUID,SessionEntityWrapper<AuthenticatedClientSessionEntity>> offlineClientSessionCache
protected final org.infinispan.Cache<LoginFailureKey,SessionEntityWrapper<LoginFailureEntity>> loginFailureCache
protected final InfinispanChangelogBasedTransaction<String,UserSessionEntity> sessionTx
protected final InfinispanChangelogBasedTransaction<String,UserSessionEntity> offlineSessionTx
protected final InfinispanChangelogBasedTransaction<UUID,AuthenticatedClientSessionEntity> clientSessionTx
protected final InfinispanChangelogBasedTransaction<UUID,AuthenticatedClientSessionEntity> offlineClientSessionTx
protected final InfinispanChangelogBasedTransaction<LoginFailureKey,LoginFailureEntity> loginFailuresTx
protected final SessionEventsSenderTransaction clusterEventsSenderTx
protected final CrossDCLastSessionRefreshStore lastSessionRefreshStore
protected final CrossDCLastSessionRefreshStore offlineLastSessionRefreshStore
protected final PersisterLastSessionRefreshStore persisterLastSessionRefreshStore
protected final RemoteCacheInvoker remoteCacheInvoker
protected final InfinispanKeyGenerator keyGenerator
public InfinispanUserSessionProvider(KeycloakSession session, RemoteCacheInvoker remoteCacheInvoker, CrossDCLastSessionRefreshStore lastSessionRefreshStore, CrossDCLastSessionRefreshStore offlineLastSessionRefreshStore, PersisterLastSessionRefreshStore persisterLastSessionRefreshStore, InfinispanKeyGenerator keyGenerator, org.infinispan.Cache<String,SessionEntityWrapper<UserSessionEntity>> sessionCache, org.infinispan.Cache<String,SessionEntityWrapper<UserSessionEntity>> offlineSessionCache, org.infinispan.Cache<UUID,SessionEntityWrapper<AuthenticatedClientSessionEntity>> clientSessionCache, org.infinispan.Cache<UUID,SessionEntityWrapper<AuthenticatedClientSessionEntity>> offlineClientSessionCache, org.infinispan.Cache<LoginFailureKey,SessionEntityWrapper<LoginFailureEntity>> loginFailureCache)
protected org.infinispan.Cache<String,SessionEntityWrapper<UserSessionEntity>> getCache(boolean offline)
protected InfinispanChangelogBasedTransaction<String,UserSessionEntity> getTransaction(boolean offline)
protected org.infinispan.Cache<UUID,SessionEntityWrapper<AuthenticatedClientSessionEntity>> getClientSessionCache(boolean offline)
protected InfinispanChangelogBasedTransaction<UUID,AuthenticatedClientSessionEntity> getClientSessionTransaction(boolean offline)
protected CrossDCLastSessionRefreshStore getLastSessionRefreshStore()
protected CrossDCLastSessionRefreshStore getOfflineLastSessionRefreshStore()
protected PersisterLastSessionRefreshStore getPersisterLastSessionRefreshStore()
public AuthenticatedClientSessionModel createClientSession(RealmModel realm, ClientModel client, UserSessionModel userSession)
createClientSession
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)
createUserSession
in interface UserSessionProvider
public UserSessionModel getUserSession(RealmModel realm, String id)
getUserSession
in interface UserSessionProvider
protected UserSessionAdapter getUserSession(RealmModel realm, String id, boolean offline)
protected List<UserSessionModel> getUserSessions(RealmModel realm, Predicate<Map.Entry<String,SessionEntityWrapper<UserSessionEntity>>> predicate, boolean offline)
public AuthenticatedClientSessionAdapter getClientSession(UserSessionModel userSession, ClientModel client, UUID clientSessionId, boolean offline)
getClientSession
in interface UserSessionProvider
public List<UserSessionModel> getUserSessions(RealmModel realm, UserModel user)
getUserSessions
in interface UserSessionProvider
public List<UserSessionModel> getUserSessionByBrokerUserId(RealmModel realm, String brokerUserId)
getUserSessionByBrokerUserId
in interface UserSessionProvider
public UserSessionModel getUserSessionByBrokerSessionId(RealmModel realm, String brokerSessionId)
getUserSessionByBrokerSessionId
in interface UserSessionProvider
public List<UserSessionModel> getUserSessions(RealmModel realm, ClientModel client)
getUserSessions
in interface UserSessionProvider
public List<UserSessionModel> getUserSessions(RealmModel realm, ClientModel client, int firstResult, int maxResults)
getUserSessions
in interface UserSessionProvider
protected List<UserSessionModel> getUserSessions(RealmModel realm, ClientModel client, int firstResult, int maxResults, boolean offline)
protected List<UserSessionModel> getUserSessionModels(RealmModel realm, int firstResult, int maxResults, boolean offline, UserSessionPredicate predicate)
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
protected long getUserSessionsCount(RealmModel realm, ClientModel client, boolean offline)
public void removeUserSession(RealmModel realm, UserSessionModel session)
UserSessionProvider
removeUserSession
in interface UserSessionProvider
public void removeUserSessions(RealmModel realm, UserModel user)
removeUserSessions
in interface UserSessionProvider
protected void removeUserSessions(RealmModel realm, UserModel user, boolean offline)
public void removeExpired(RealmModel realm)
UserSessionProvider
removeExpired
in interface UserSessionProvider
public void removeUserSessions(RealmModel realm)
removeUserSessions
in interface UserSessionProvider
protected void onRemoveUserSessionsEvent(String realmId)
public UserLoginFailureModel getUserLoginFailure(RealmModel realm, String userId)
getUserLoginFailure
in interface UserSessionProvider
public UserLoginFailureModel addUserLoginFailure(RealmModel realm, String userId)
addUserLoginFailure
in interface UserSessionProvider
public void removeUserLoginFailure(RealmModel realm, String userId)
removeUserLoginFailure
in interface UserSessionProvider
public void removeAllUserLoginFailures(RealmModel realm)
removeAllUserLoginFailures
in interface UserSessionProvider
protected void onRemoveAllUserLoginFailuresEvent(String realmId)
public void onRealmRemoved(RealmModel realm)
onRealmRemoved
in interface UserSessionProvider
protected void onRealmRemovedEvent(String realmId)
public void onClientRemoved(RealmModel realm, ClientModel client)
onClientRemoved
in interface UserSessionProvider
protected void onUserRemoved(RealmModel realm, UserModel user)
public void close()
close
in interface UserSessionProvider
close
in interface Provider
protected void removeUserSession(UserSessionEntity sessionEntity, boolean offline)
public UserSessionModel createOfflineUserSession(UserSessionModel userSession)
UserSessionProvider
createOfflineUserSession
in interface UserSessionProvider
public UserSessionAdapter 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 List<UserSessionModel> getOfflineUserSessions(RealmModel realm, UserModel user)
getOfflineUserSessions
in interface UserSessionProvider
public long getOfflineSessionsCount(RealmModel realm, ClientModel client)
getOfflineSessionsCount
in interface UserSessionProvider
public List<UserSessionModel> getOfflineUserSessions(RealmModel realm, ClientModel client, int first, int max)
getOfflineUserSessions
in interface UserSessionProvider
public void importUserSessions(Collection<UserSessionModel> persistentUserSessions, boolean offline)
UserSessionProvider
importUserSessions
in interface UserSessionProvider
protected UserSessionAdapter importUserSession(UserSessionModel userSession, boolean offline)
Copyright © 2020 JBoss by Red Hat. All rights reserved.