keycloak
公開メンバ関数 | 静的公開変数類 | 限定公開メンバ関数 | 非公開メンバ関数 | 静的非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory クラス
org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory の継承関係図
Inheritance graph
org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory 連携図
Collaboration graph

公開メンバ関数

void init (Config.Scope config)
 
void postInit (KeycloakSessionFactory factory)
 
AuthenticationSessionProvider create (KeycloakSession session)
 
void close ()
 
String getId ()
 
void init (Config.Scope config)
 
default int order ()
 

静的公開変数類

static final String PROVIDER_ID = "infinispan"
 
static final String AUTHENTICATION_SESSION_EVENTS = "AUTHENTICATION_SESSION_EVENTS"
 
static final String REALM_REMOVED_AUTHSESSION_EVENT = "REALM_REMOVED_EVENT_AUTHSESSIONS"
 
static final String CLIENT_REMOVED_AUTHSESSION_EVENT = "CLIENT_REMOVED_SESSION_AUTHSESSIONS"
 

限定公開メンバ関数

void registerClusterListeners (KeycloakSession session)
 

非公開メンバ関数

void updateAuthNotes (ClusterEvent clEvent)
 
void lazyInit (KeycloakSession session)
 

静的非公開メンバ関数

static void updateAuthSession (RootAuthenticationSessionEntity rootAuthSession, String tabId, Map< String, String > authNotesFragment)
 

非公開変数類

InfinispanKeyGenerator keyGenerator
 
volatile Cache< String, RootAuthenticationSessionEntityauthSessionsCache
 

静的非公開変数類

static final Logger log = Logger.getLogger(InfinispanAuthenticationSessionProviderFactory.class)
 

詳解

著者
Marek Posolda

関数詳解

◆ close()

void org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.close ( )
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

173  {
174  }

◆ create()

AuthenticationSessionProvider org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.create ( KeycloakSession  session)
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

115  {
116  lazyInit(session);
117  return new InfinispanAuthenticationSessionProvider(session, keyGenerator, authSessionsCache);
118  }
InfinispanKeyGenerator keyGenerator
Definition: InfinispanAuthenticationSessionProviderFactory.java:52
void lazyInit(KeycloakSession session)
Definition: InfinispanAuthenticationSessionProviderFactory.java:154
volatile Cache< String, RootAuthenticationSessionEntity > authSessionsCache
Definition: InfinispanAuthenticationSessionProviderFactory.java:54

◆ getId()

String org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.getId ( )
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

177  {
178  return PROVIDER_ID;
179  }
static final String PROVIDER_ID
Definition: InfinispanAuthenticationSessionProviderFactory.java:56

◆ init() [1/2]

void org.keycloak.provider.ProviderFactory< T extends Provider >.init ( Config.Scope  config)
inherited

Only called once when the factory is first created. This config is pulled from keycloak_server.json

引数
config

org.keycloak.storage.ldap.LDAPStorageProviderFactory, org.keycloak.protocol.saml.EntityDescriptorDescriptionConverter, org.keycloak.authentication.authenticators.x509.AbstractX509ClientCertificateAuthenticatorFactory, org.keycloak.authentication.forms.RegistrationUserCreation, org.keycloak.authentication.authenticators.resetcred.ResetCredentialEmail, org.keycloak.authentication.forms.RegistrationRecaptcha, org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser, org.keycloak.authentication.forms.RegistrationProfile, org.keycloak.authentication.forms.RegistrationPassword, org.keycloak.cluster.infinispan.InfinispanClusterProviderFactory, org.keycloak.protocol.saml.installation.KeycloakSamlClientInstallation, org.keycloak.protocol.saml.installation.SamlIDPDescriptorClientInstallation, org.keycloak.authentication.requiredactions.UpdateProfile, org.keycloak.authentication.requiredactions.UpdatePassword, org.keycloak.protocol.oidc.installation.KeycloakOIDCClientInstallation, org.keycloak.protocol.saml.mappers.RoleNameMapper, org.keycloak.connections.httpclient.DefaultHttpClientFactory, org.keycloak.protocol.saml.installation.ModAuthMellonClientInstallation, org.keycloak.federation.kerberos.KerberosFederationProviderFactory, org.keycloak.authentication.requiredactions.VerifyEmail, org.keycloak.authentication.requiredactions.UpdateTotp, org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider, org.keycloak.protocol.oidc.installation.KeycloakOIDCJbossSubsystemClientInstallation, org.keycloak.connections.jpa.DefaultJpaConnectionProviderFactory, org.keycloak.protocol.saml.installation.SamlSPDescriptorClientInstallation, org.keycloak.policy.BlacklistPasswordPolicyProviderFactory, org.keycloak.authentication.forms.RegistrationPage, org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticatorFactory, org.keycloak.authentication.authenticators.browser.IdentityProviderAuthenticatorFactory, org.keycloak.authentication.authenticators.resetcred.AbstractSetRequiredActionAuthenticator, org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory, org.keycloak.protocol.saml.installation.KeycloakSamlSubsystemInstallation, org.keycloak.keys.infinispan.InfinispanPublicKeyStorageProviderFactory, org.keycloak.theme.ClasspathThemeProviderFactory, org.keycloak.models.cache.infinispan.InfinispanUserCacheProviderFactory, org.keycloak.models.cache.infinispan.InfinispanCacheRealmProviderFactory, org.keycloak.executors.DefaultExecutorsProviderFactory, org.keycloak.authentication.authenticators.browser.ScriptBasedAuthenticatorFactory, org.keycloak.protocol.saml.SamlProtocolFactory, org.keycloak.authentication.authenticators.browser.ConditionalOtpFormAuthenticatorFactory, org.keycloak.protocol.docker.DockerAuthenticatorFactory, org.keycloak.storage.UserStorageProviderFactory< T extends UserStorageProvider >, org.keycloak.storage.client.ClientStorageProviderFactory< T extends ClientStorageProvider >, org.keycloak.authentication.authenticators.directgrant.AbstractDirectGrantAuthenticator, org.keycloak.authentication.authenticators.browser.OTPFormAuthenticatorFactory, org.keycloak.authentication.authenticators.browser.UsernamePasswordFormFactory, org.keycloak.exportimport.KeycloakClientDescriptionConverter, org.keycloak.authentication.authenticators.browser.SpnegoAuthenticatorFactory, org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper, org.keycloak.authentication.authenticators.browser.CookieAuthenticatorFactory, org.keycloak.authentication.requiredactions.TermsAndConditions, org.keycloak.events.email.EmailEventListenerProviderFactory, org.keycloak.authentication.authenticators.broker.IdpReviewProfileAuthenticatorFactory, org.keycloak.protocol.saml.mappers.AbstractSAMLProtocolMapper, org.keycloak.models.session.DisabledUserSessionPersisterProvider, org.keycloak.services.x509.DefaultClientCertificateLookupFactory, org.keycloak.authentication.authenticators.broker.IdpCreateUserIfUniqueAuthenticatorFactory, org.keycloak.authentication.authenticators.cli.CliUsernamePasswordAuthenticatorFactory, org.keycloak.authentication.authenticators.client.AbstractClientAuthenticator, org.keycloak.theme.JarThemeProviderFactory, org.keycloak.authentication.authenticators.challenge.BasicAuthAuthenticatorFactory, org.keycloak.authentication.authenticators.challenge.BasicAuthOTPAuthenticatorFactory, org.keycloak.authentication.authenticators.challenge.NoCookieFlowRedirectAuthenticatorFactory, org.keycloak.connections.jpa.updater.liquibase.lock.LiquibaseDBLockProviderFactory, org.keycloak.models.sessions.infinispan.InfinispanActionTokenStoreProviderFactory, org.keycloak.timer.basic.BasicTimerProviderFactory, org.keycloak.truststore.FileTruststoreProviderFactory, org.keycloak.authentication.authenticators.console.ConsoleUsernamePasswordAuthenticatorFactory, org.keycloak.events.log.JBossLoggingEventListenerProviderFactory, org.keycloak.protocol.oidc.OIDCClientDescriptionConverterFactory, org.keycloak.authentication.authenticators.broker.IdpConfirmLinkAuthenticatorFactory, org.keycloak.authentication.authenticators.broker.IdpEmailVerificationAuthenticatorFactory, org.keycloak.exportimport.singlefile.SingleFileImportProviderFactory, org.keycloak.services.x509.AbstractClientCertificateFromHttpHeadersLookupFactory, org.keycloak.theme.ClasspathThemeResourceProviderFactory, org.keycloak.exportimport.dir.DirExportProviderFactory, org.keycloak.exportimport.singlefile.SingleFileExportProviderFactory, org.keycloak.policy.HashAlgorithmPasswordPolicyProviderFactory, org.keycloak.policy.HistoryPasswordPolicyProviderFactory, org.keycloak.protocol.docker.mapper.DockerAuthV2ProtocolMapper, org.keycloak.authentication.authenticators.broker.IdpAutoLinkAuthenticatorFactory, org.keycloak.models.jpa.session.JpaUserSessionPersisterProviderFactory, org.keycloak.policy.DigitsPasswordPolicyProviderFactory, org.keycloak.policy.LengthPasswordPolicyProviderFactory, org.keycloak.policy.NotUsernamePasswordPolicyProviderFactory, org.keycloak.policy.RegexPatternsPasswordPolicyProviderFactory, org.keycloak.scripting.DefaultScriptingProviderFactory, org.keycloak.credential.hash.Pbkdf2PasswordHashProviderFactory, org.keycloak.events.jpa.JpaEventStoreProviderFactory, org.keycloak.exportimport.dir.DirImportProviderFactory, org.keycloak.transaction.JBossJtaTransactionManagerLookup, org.keycloak.email.freemarker.FreeMarkerEmailTemplateProviderFactory, org.keycloak.forms.account.freemarker.FreeMarkerAccountProviderFactory, org.keycloak.forms.login.freemarker.FreeMarkerLoginFormsProviderFactory, org.keycloak.policy.ForceExpiredPasswordPolicyProviderFactory, org.keycloak.storage.jpa.JpaUserFederatedStorageProviderFactory, org.keycloak.keys.KeyProviderFactory< T extends KeyProvider >, org.keycloak.policy.HashIterationsPasswordPolicyProviderFactory, org.keycloak.protocol.oidc.OIDCWellKnownProviderFactory, org.keycloak.protocol.saml.clientregistration.EntityDescriptorClientRegistrationProviderFactory, org.keycloak.services.clientregistration.oidc.OIDCClientRegistrationProviderFactory, org.keycloak.theme.ExtendingThemeManagerFactory, org.keycloak.theme.FolderThemeProviderFactory, org.keycloak.credential.CredentialProviderFactory< T extends CredentialProvider >, org.keycloak.services.clientregistration.policy.AbstractClientRegistrationPolicyFactory, org.keycloak.connections.jpa.updater.liquibase.LiquibaseJpaUpdaterProviderFactory, org.keycloak.policy.LowerCasePasswordPolicyProviderFactory, org.keycloak.policy.SpecialCharsPasswordPolicyProviderFactory, org.keycloak.policy.UpperCasePasswordPolicyProviderFactory, org.keycloak.protocol.oidc.AccessTokenIntrospectionProviderFactory, org.keycloak.provider.wildfly.ModuleThemeProviderFactory, org.keycloak.services.managers.DefaultBruteForceProtectorFactory, org.keycloak.services.migration.DefaultMigrationProviderFactory, org.keycloak.models.jpa.JpaRealmProviderFactory, org.keycloak.models.jpa.JpaUserCredentialStoreFactory, org.keycloak.models.jpa.JpaUserProviderFactory, org.keycloak.protocol.docker.installation.DockerComposeYamlInstallationProvider, org.keycloak.email.DefaultEmailSenderProviderFactory, org.keycloak.policy.DefaultPasswordPolicyManagerProviderFactory, org.keycloak.protocol.AbstractLoginProtocolFactory, org.keycloak.services.clientregistration.AdapterInstallationClientRegistrationProviderFactory, org.keycloak.services.clientregistration.DefaultClientRegistrationProviderFactory, org.keycloak.locale.DefaultLocaleSelectorProviderFactory, org.keycloak.urls.HostnameProviderFactory, org.keycloak.credential.hash.Pbkdf2Sha256PasswordHashProviderFactory, org.keycloak.credential.hash.Pbkdf2Sha512PasswordHashProviderFactory, org.keycloak.crypto.SignatureProviderFactory, org.keycloak.protocol.docker.installation.DockerRegistryConfigFileInstallationProvider, org.keycloak.protocol.docker.installation.DockerVariableOverrideInstallationProvider, org.keycloak.url.FixedHostnameProviderFactory, org.keycloak.theme.DefaultThemeSelectorProviderFactory, org.keycloak.protocol.oidc.ext.OIDCExtProviderFactory (計132項目)で実装されています。

◆ init() [2/2]

void org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.init ( Config.Scope  config)
inline
65  {
66 
67  }

◆ lazyInit()

void org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.lazyInit ( KeycloakSession  session)
inlineprivate
154  {
155  if (authSessionsCache == null) {
156  synchronized (this) {
157  if (authSessionsCache == null) {
158  InfinispanConnectionProvider connections = session.getProvider(InfinispanConnectionProvider.class);
159  authSessionsCache = connections.getCache(InfinispanConnectionProvider.AUTHENTICATION_SESSIONS_CACHE_NAME);
160 
161  keyGenerator = new InfinispanKeyGenerator();
162 
163  ClusterProvider cluster = session.getProvider(ClusterProvider.class);
164  cluster.registerListener(AUTHENTICATION_SESSION_EVENTS, this::updateAuthNotes);
165 
166  log.debugf("[%s] Registered cluster listeners", authSessionsCache.getCacheManager().getAddress());
167  }
168  }
169  }
170  }
static final String AUTHENTICATION_SESSION_EVENTS
Definition: InfinispanAuthenticationSessionProviderFactory.java:58
static final Logger log
Definition: InfinispanAuthenticationSessionProviderFactory.java:50
InfinispanKeyGenerator keyGenerator
Definition: InfinispanAuthenticationSessionProviderFactory.java:52
volatile Cache< String, RootAuthenticationSessionEntity > authSessionsCache
Definition: InfinispanAuthenticationSessionProviderFactory.java:54

◆ order()

default int org.keycloak.provider.ProviderFactory< T extends Provider >.order ( )
inlineinherited

◆ postInit()

void org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.postInit ( KeycloakSessionFactory  factory)
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

71  {
72  factory.register(new ProviderEventListener() {
73 
74  @Override
75  public void onEvent(ProviderEvent event) {
76  if (event instanceof PostMigrationEvent) {
77 
78  KeycloakModelUtils.runJobInTransaction(factory, (KeycloakSession session) -> {
79 
80  registerClusterListeners(session);
81 
82  });
83  }
84  }
85  });
86  }
void registerClusterListeners(KeycloakSession session)
Definition: InfinispanAuthenticationSessionProviderFactory.java:89

◆ registerClusterListeners()

void org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.registerClusterListeners ( KeycloakSession  session)
inlineprotected
89  {
90  KeycloakSessionFactory sessionFactory = session.getKeycloakSessionFactory();
91  ClusterProvider cluster = session.getProvider(ClusterProvider.class);
92 
93  cluster.registerListener(REALM_REMOVED_AUTHSESSION_EVENT, new AbstractAuthSessionClusterListener<RealmRemovedSessionEvent>(sessionFactory) {
94 
95  @Override
96  protected void eventReceived(KeycloakSession session, InfinispanAuthenticationSessionProvider provider, RealmRemovedSessionEvent sessionEvent) {
97  provider.onRealmRemovedEvent(sessionEvent.getRealmId());
98  }
99 
100  });
101 
102  cluster.registerListener(CLIENT_REMOVED_AUTHSESSION_EVENT, new AbstractAuthSessionClusterListener<ClientRemovedSessionEvent>(sessionFactory) {
103 
104  @Override
105  protected void eventReceived(KeycloakSession session, InfinispanAuthenticationSessionProvider provider, ClientRemovedSessionEvent sessionEvent) {
106  provider.onClientRemovedEvent(sessionEvent.getRealmId(), sessionEvent.getClientUuid());
107  }
108  });
109 
110  log.debug("Registered cluster listeners");
111  }
static final Logger log
Definition: InfinispanAuthenticationSessionProviderFactory.java:50
static final String CLIENT_REMOVED_AUTHSESSION_EVENT
Definition: InfinispanAuthenticationSessionProviderFactory.java:62
static final String REALM_REMOVED_AUTHSESSION_EVENT
Definition: InfinispanAuthenticationSessionProviderFactory.java:60

◆ updateAuthNotes()

void org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.updateAuthNotes ( ClusterEvent  clEvent)
inlineprivate
120  {
121  if (! (clEvent instanceof AuthenticationSessionAuthNoteUpdateEvent)) {
122  return;
123  }
124 
125  AuthenticationSessionAuthNoteUpdateEvent event = (AuthenticationSessionAuthNoteUpdateEvent) clEvent;
126  RootAuthenticationSessionEntity authSession = this.authSessionsCache.get(event.getAuthSessionId());
127  updateAuthSession(authSession, event.getTabId(), event.getAuthNotesFragment());
128  }
static void updateAuthSession(RootAuthenticationSessionEntity rootAuthSession, String tabId, Map< String, String > authNotesFragment)
Definition: InfinispanAuthenticationSessionProviderFactory.java:131
volatile Cache< String, RootAuthenticationSessionEntity > authSessionsCache
Definition: InfinispanAuthenticationSessionProviderFactory.java:54

◆ updateAuthSession()

static void org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.updateAuthSession ( RootAuthenticationSessionEntity  rootAuthSession,
String  tabId,
Map< String, String >  authNotesFragment 
)
inlinestaticprivate
131  {
132  if (rootAuthSession == null) {
133  return;
134  }
135 
136  AuthenticationSessionEntity authSession = rootAuthSession.getAuthenticationSessions().get(tabId);
137 
138  if (authSession != null) {
139  if (authSession.getAuthNotes() == null) {
140  authSession.setAuthNotes(new ConcurrentHashMap<>());
141  }
142 
143  for (Entry<String, String> me : authNotesFragment.entrySet()) {
144  String value = me.getValue();
145  if (value == null) {
146  authSession.getAuthNotes().remove(me.getKey());
147  } else {
148  authSession.getAuthNotes().put(me.getKey(), value);
149  }
150  }
151  }
152  }

メンバ詳解

◆ AUTHENTICATION_SESSION_EVENTS

final String org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.AUTHENTICATION_SESSION_EVENTS = "AUTHENTICATION_SESSION_EVENTS"
static

◆ authSessionsCache

volatile Cache<String, RootAuthenticationSessionEntity> org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.authSessionsCache
private

◆ CLIENT_REMOVED_AUTHSESSION_EVENT

final String org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.CLIENT_REMOVED_AUTHSESSION_EVENT = "CLIENT_REMOVED_SESSION_AUTHSESSIONS"
static

◆ keyGenerator

InfinispanKeyGenerator org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.keyGenerator
private

◆ log

final Logger org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.log = Logger.getLogger(InfinispanAuthenticationSessionProviderFactory.class)
staticprivate

◆ PROVIDER_ID

final String org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.PROVIDER_ID = "infinispan"
static

◆ REALM_REMOVED_AUTHSESSION_EVENT

final String org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.REALM_REMOVED_AUTHSESSION_EVENT = "REALM_REMOVED_EVENT_AUTHSESSIONS"
static

このクラス詳解は次のファイルから抽出されました: