@Override public AuthenticationSessionProvider create(KeycloakSession session) { lazyInit(session); return new InfinispanAuthenticationSessionProvider(session, keyGenerator, authSessionsCache); }
@Override public CodeToTokenStoreProvider create(KeycloakSession session) { lazyInit(session); return new InfinispanCodeToTokenStoreProvider(session, codeCache); }
@Override public InfinispanSingleUseTokenStoreProvider create(KeycloakSession session) { lazyInit(session); return new InfinispanSingleUseTokenStoreProvider(session, tokenCache); }
@Override public void removeExpired(RealmModel realm) { removeExpiredUserSessions(realm); removeExpiredClientSessions(realm); removeExpiredOfflineUserSessions(realm); removeExpiredOfflineClientSessions(realm); removeExpiredClientInitialAccess(realm); }
UserSessionAdapter wrap(RealmModel realm, UserSessionEntity entity, boolean offline) { Cache<String, SessionEntity> cache = getCache(offline); return entity != null ? new UserSessionAdapter(session, this, cache, realm, entity, offline) : null; }
UserSessionAdapter wrap(RealmModel realm, UserSessionEntity entity, boolean offline) { InfinispanChangelogBasedTransaction<String, UserSessionEntity> userSessionUpdateTx = getTransaction(offline); InfinispanChangelogBasedTransaction<UUID, AuthenticatedClientSessionEntity> clientSessionUpdateTx = getClientSessionTransaction(offline); return entity != null ? new UserSessionAdapter(session, this, userSessionUpdateTx, clientSessionUpdateTx, realm, entity, offline) : null; }
ClientInitialAccessAdapter wrap(RealmModel realm, ClientInitialAccessEntity entity) { Cache<String, SessionEntity> cache = getCache(false); return entity != null ? new ClientInitialAccessAdapter(session, this, cache, realm, entity) : null; }
AuthenticatedClientSessionAdapter wrap(UserSessionModel userSession, ClientModel client, AuthenticatedClientSessionEntity entity, boolean offline) { InfinispanChangelogBasedTransaction<String, UserSessionEntity> userSessionUpdateTx = getTransaction(offline); InfinispanChangelogBasedTransaction<UUID, AuthenticatedClientSessionEntity> clientSessionUpdateTx = getClientSessionTransaction(offline); return entity != null ? new AuthenticatedClientSessionAdapter(session,this, entity, client, userSession, userSessionUpdateTx, clientSessionUpdateTx, offline) : null; }
ClientSessionAdapter wrap(RealmModel realm, ClientSessionEntity entity, boolean offline) { Cache<String, SessionEntity> cache = getCache(offline); return entity != null ? new ClientSessionAdapter(session, this, cache, realm, entity, offline) : null; }
@Override public void removeUserSession(RealmModel realm, UserSessionModel session) { UserSessionEntity entity = getUserSessionEntity(session, false); if (entity != null) { removeUserSession(entity, false); } }
@Override public void onRealmRemoved(RealmModel realm) { removeUserSessions(realm, true); removeUserSessions(realm, false); removeAllUserLoginFailures(realm); }
@Override public void removeOfflineClientSession(RealmModel realm, String clientSessionId) { ClientSessionModel clientSession = getOfflineClientSession(realm, clientSessionId); removeClientSession(realm, clientSession, true); }
@Override public RootAuthenticationSessionModel getRootAuthenticationSession(RealmModel realm, String authenticationSessionId) { RootAuthenticationSessionEntity entity = getRootAuthenticationSessionEntity(authenticationSessionId); return wrap(realm, entity); }
protected void onRealmRemovedEvent(String realmId) { removeLocalUserSessions(realmId, true); removeLocalUserSessions(realmId, false); removeAllLocalUserLoginFailuresEvent(realmId); }
@Override public void setRedirectUri(String uri) { ClientSessionUpdateTask task = new ClientSessionUpdateTask() { @Override public void runUpdate(AuthenticatedClientSessionEntity entity) { entity.setRedirectUri(uri); } }; update(task); }
@Override public void incrementFailures() { LoginFailuresUpdateTask task = new LoginFailuresUpdateTask() { @Override public void runUpdate(LoginFailureEntity entity) { entity.setNumFailures(entity.getNumFailures() + 1); } }; update(task); }
@Override public void onClientRemoved(RealmModel realm, ClientModel client) { onClientRemoved(realm, client, true); onClientRemoved(realm, client, false); }
@Override public void setCurrentRefreshTokenUseCount(int currentRefreshTokenUseCount) { ClientSessionUpdateTask task = new ClientSessionUpdateTask() { @Override public void runUpdate(AuthenticatedClientSessionEntity entity) { entity.setCurrentRefreshTokenUseCount(currentRefreshTokenUseCount); } }; update(task); }
@Override public void setCurrentRefreshToken(String currentRefreshToken) { ClientSessionUpdateTask task = new ClientSessionUpdateTask() { @Override public void runUpdate(AuthenticatedClientSessionEntity entity) { entity.setCurrentRefreshToken(currentRefreshToken); } }; update(task); }