@Override public AuthenticationSessionProvider create(KeycloakSession session) { lazyInit(session); return new InfinispanAuthenticationSessionProvider(session, keyGenerator, authSessionsCache); }
@Override public RootAuthenticationSessionModel createRootAuthenticationSession(RealmModel realm) { String id = keyGenerator.generateKeyString(session, cache); return createRootAuthenticationSession(id, realm); }
@Override public RootAuthenticationSessionModel getRootAuthenticationSession(RealmModel realm, String authenticationSessionId) { RootAuthenticationSessionEntity entity = getRootAuthenticationSessionEntity(authenticationSessionId); return wrap(realm, entity); }
@Override protected void eventReceived(KeycloakSession session, InfinispanAuthenticationSessionProvider provider, RealmRemovedSessionEvent sessionEvent) { provider.onRealmRemovedEvent(sessionEvent.getRealmId()); }
@Override protected void eventReceived(KeycloakSession session, InfinispanAuthenticationSessionProvider provider, ClientRemovedSessionEvent sessionEvent) { provider.onClientRemovedEvent(sessionEvent.getRealmId(), sessionEvent.getClientUuid()); } });
@Override public void eventReceived(ClusterEvent event) { KeycloakModelUtils.runJobInTransaction(sessionFactory, (KeycloakSession session) -> { InfinispanAuthenticationSessionProvider provider = (InfinispanAuthenticationSessionProvider) session.getProvider(AuthenticationSessionProvider.class, InfinispanAuthenticationSessionProviderFactory.PROVIDER_ID); SE sessionEvent = (SE) event; if (!provider.getCache().getStatus().allowInvocations()) { log.debugf("Cache in state '%s' doesn't allow invocations", provider.getCache().getStatus()); return; } log.debugf("Received authentication session event '%s'", sessionEvent.toString()); eventReceived(session, provider, sessionEvent); }); }
@Override public AuthenticationSessionModel createAuthenticationSession(ClientModel client) { AuthenticationSessionEntity authSessionEntity = new AuthenticationSessionEntity(); authSessionEntity.setClientUUID(client.getId()); String tabId = provider.generateTabId(); entity.getAuthenticationSessions().put(tabId, authSessionEntity); // Update our timestamp when adding new authenticationSession entity.setTimestamp(Time.currentTime()); update(); return new AuthenticationSessionAdapter(session, this, tabId, authSessionEntity); }
@Override public RootAuthenticationSessionModel createRootAuthenticationSession(String id, RealmModel realm) { RootAuthenticationSessionEntity entity = new RootAuthenticationSessionEntity(); entity.setId(id); entity.setRealmId(realm.getId()); entity.setTimestamp(Time.currentTime()); tx.put(cache, id, entity); return wrap(realm, entity); }