Class InfinispanAuthenticationSessionProvider
java.lang.Object
org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProvider
- All Implemented Interfaces:
Provider
,AuthenticationSessionProvider
public class InfinispanAuthenticationSessionProvider
extends Object
implements AuthenticationSessionProvider
- Author:
- Marek Posolda
-
Field Summary
Modifier and TypeFieldDescriptionprotected final org.infinispan.Cache<String,
SessionEntityWrapper<RootAuthenticationSessionEntity>> protected final SessionEventsSenderTransaction
protected final InfinispanChangelogBasedTransaction<String,
RootAuthenticationSessionEntity> -
Constructor Summary
ConstructorDescriptionInfinispanAuthenticationSessionProvider
(KeycloakSession session, RemoteCacheInvoker remoteCacheInvoker, InfinispanKeyGenerator keyGenerator, org.infinispan.Cache<String, SessionEntityWrapper<RootAuthenticationSessionEntity>> cache, int authSessionsLimit, SerializeExecutionsByKey<String> serializer) -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Creates and registers a new authentication session with random ID.createRootAuthenticationSession
(RealmModel realm, String id) Creates a new root authentication session specified by the provided realm and id.org.infinispan.Cache<String,
SessionEntityWrapper<RootAuthenticationSessionEntity>> getCache()
getRootAuthenticationSession
(RealmModel realm, String authenticationSessionId) Returns the root authentication session specified by the provided realm and id.void
void
onClientRemoved
(RealmModel realm, ClientModel client) Removes all associated root authentication sessions to the given realm and client which was removed.void
onRealmRemoved
(RealmModel realm) Removes all associated root authentication sessions to the given realm which was removed.protected void
onRealmRemovedEvent
(String realmId) void
Remove expired authentication sessions in all the realmsvoid
removeExpired
(RealmModel realm) Removes all expired root authentication sessions for the given realm.void
removeRootAuthenticationSession
(RealmModel realm, RootAuthenticationSessionModel authenticationSession) Removes provided root authentication session.void
updateNonlocalSessionAuthNotes
(AuthenticationSessionCompoundId compoundId, Map<String, String> authNotesFragment) Requests update of authNotes of a root authentication session that is not owned by this instance but might exist somewhere in the cluster.
-
Field Details
-
cache
protected final org.infinispan.Cache<String,SessionEntityWrapper<RootAuthenticationSessionEntity>> cache -
sessionTx
protected final InfinispanChangelogBasedTransaction<String,RootAuthenticationSessionEntity> sessionTx -
clusterEventsSenderTx
-
-
Constructor Details
-
InfinispanAuthenticationSessionProvider
public InfinispanAuthenticationSessionProvider(KeycloakSession session, RemoteCacheInvoker remoteCacheInvoker, InfinispanKeyGenerator keyGenerator, org.infinispan.Cache<String, SessionEntityWrapper<RootAuthenticationSessionEntity>> cache, int authSessionsLimit, SerializeExecutionsByKey<String> serializer)
-
-
Method Details
-
createRootAuthenticationSession
Description copied from interface:AuthenticationSessionProvider
Creates and registers a new authentication session with random ID. Authentication session entity will be prefilled with current timestamp, the given realm and client.- Specified by:
createRootAuthenticationSession
in interfaceAuthenticationSessionProvider
- Parameters:
realm
-RealmModel
Can't benull
.- Returns:
- Returns created
RootAuthenticationSessionModel
. Never returnsnull
.
-
createRootAuthenticationSession
Description copied from interface:AuthenticationSessionProvider
Creates a new root authentication session specified by the provided realm and id.- Specified by:
createRootAuthenticationSession
in interfaceAuthenticationSessionProvider
- Parameters:
realm
-RealmModel
Can't benull
.id
-String
Id of newly created root authentication session. Ifnull
a random id will be generated.- Returns:
- Returns created
RootAuthenticationSessionModel
. Never returnsnull
.
-
removeAllExpired
public void removeAllExpired()Description copied from interface:AuthenticationSessionProvider
Remove expired authentication sessions in all the realms- Specified by:
removeAllExpired
in interfaceAuthenticationSessionProvider
-
removeExpired
Description copied from interface:AuthenticationSessionProvider
Removes all expired root authentication sessions for the given realm.- Specified by:
removeExpired
in interfaceAuthenticationSessionProvider
- Parameters:
realm
-RealmModel
Can't benull
.
-
onRealmRemoved
Description copied from interface:AuthenticationSessionProvider
Removes all associated root authentication sessions to the given realm which was removed.- Specified by:
onRealmRemoved
in interfaceAuthenticationSessionProvider
- Parameters:
realm
-RealmModel
Can't benull
.
-
onRealmRemovedEvent
-
onClientRemoved
Description copied from interface:AuthenticationSessionProvider
Removes all associated root authentication sessions to the given realm and client which was removed.- Specified by:
onClientRemoved
in interfaceAuthenticationSessionProvider
- Parameters:
realm
-RealmModel
Can't benull
.client
-ClientModel
Can't benull
.
-
updateNonlocalSessionAuthNotes
public void updateNonlocalSessionAuthNotes(AuthenticationSessionCompoundId compoundId, Map<String, String> authNotesFragment) Description copied from interface:AuthenticationSessionProvider
Requests update of authNotes of a root authentication session that is not owned by this instance but might exist somewhere in the cluster.- Specified by:
updateNonlocalSessionAuthNotes
in interfaceAuthenticationSessionProvider
- Parameters:
compoundId
-AuthenticationSessionCompoundId
The method has no effect ifnull
.authNotesFragment
-Map<String, String>
Map with authNote values. Auth note is removed if the corresponding value in the map isnull
. Map itself can't benull
.
-
getRootAuthenticationSession
public RootAuthenticationSessionModel getRootAuthenticationSession(RealmModel realm, String authenticationSessionId) Description copied from interface:AuthenticationSessionProvider
Returns the root authentication session specified by the provided realm and id.- Specified by:
getRootAuthenticationSession
in interfaceAuthenticationSessionProvider
- Parameters:
realm
-RealmModel
Can't benull
.authenticationSessionId
-RootAuthenticationSessionModel
Ifnull
thennull
will be returned.- Returns:
- Returns found
RootAuthenticationSessionModel
ornull
if no root authentication session is found.
-
removeRootAuthenticationSession
public void removeRootAuthenticationSession(RealmModel realm, RootAuthenticationSessionModel authenticationSession) Description copied from interface:AuthenticationSessionProvider
Removes provided root authentication session.- Specified by:
removeRootAuthenticationSession
in interfaceAuthenticationSessionProvider
- Parameters:
realm
-RealmModel
Associated realm to the given root authentication session.authenticationSession
-RootAuthenticationSessionModel
Can't benull
.
-
close
public void close() -
getCache
public org.infinispan.Cache<String,SessionEntityWrapper<RootAuthenticationSessionEntity>> getCache() -
getRootAuthSessionTransaction
public InfinispanChangelogBasedTransaction<String,RootAuthenticationSessionEntity> getRootAuthSessionTransaction() -
migrate
- Specified by:
migrate
in interfaceAuthenticationSessionProvider
-