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

公開メンバ関数

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

限定公開メンバ関数

void lazyInit ()
 
void initContainerManaged (String cacheContainerLookup)
 
void initEmbedded ()
 
Configuration getKeysCacheConfig ()
 
void configureTransport (GlobalConfigurationBuilder gcb, String nodeName, String siteName, String jgroupsUdpMcastAddr)
 

限定公開変数類

Config.Scope config
 
EmbeddedCacheManager cacheManager
 
RemoteCacheProvider remoteCacheProvider
 
boolean containerManaged
 

静的限定公開変数類

static final Logger logger = Logger.getLogger(DefaultInfinispanConnectionProviderFactory.class)
 

非公開メンバ関数

Configuration getRevisionCacheConfig (long maxEntries)
 
void configureRemoteCacheStore (ConfigurationBuilder builder, boolean async, String cacheName, boolean sessionCache)
 
void configureRemoteActionTokenCacheStore (ConfigurationBuilder builder, boolean async)
 
ConfigurationBuilder getActionTokenCacheConfig ()
 

非公開変数類

TopologyInfo topologyInfo
 

静的非公開変数類

static final Object CHANNEL_INIT_SYNCHRONIZER = new Object()
 

詳解

著者
Stian Thorgersen

関数詳解

◆ close()

void org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.close ( )
inline

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

74  {
75  if (cacheManager != null && !containerManaged) {
76  cacheManager.stop();
77  }
78  if (remoteCacheProvider != null) {
80  }
81  cacheManager = null;
82  }
boolean containerManaged
Definition: DefaultInfinispanConnectionProviderFactory.java:62
RemoteCacheProvider remoteCacheProvider
Definition: DefaultInfinispanConnectionProviderFactory.java:60
EmbeddedCacheManager cacheManager
Definition: DefaultInfinispanConnectionProviderFactory.java:58
void stop()
Definition: RemoteCacheProvider.java:86

◆ configureRemoteActionTokenCacheStore()

void org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.configureRemoteActionTokenCacheStore ( ConfigurationBuilder  builder,
boolean  async 
)
inlineprivate
369  {
370  String jdgServer = config.get("remoteStoreHost", "localhost");
371  Integer jdgPort = config.getInt("remoteStorePort", 11222);
372 
373  builder.persistence()
374  .passivation(false)
375  .addStore(RemoteStoreConfigurationBuilder.class)
376  .fetchPersistentState(false)
377  .ignoreModifications(false)
378  .purgeOnStartup(false)
379  .preload(true)
380  .shared(true)
381  .remoteCacheName(InfinispanConnectionProvider.ACTION_TOKEN_CACHE)
382  .rawValues(true)
383  .forceReturnValues(false)
384  .marshaller(KeycloakHotRodMarshallerFactory.class.getName())
385  //.protocolVersion(ProtocolVersion.PROTOCOL_VERSION_26)
386  .addServer()
387  .host(jdgServer)
388  .port(jdgPort)
389  .async()
390  .enabled(async);
391 
392  }
Config.Scope config
Definition: DefaultInfinispanConnectionProviderFactory.java:56

◆ configureRemoteCacheStore()

void org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.configureRemoteCacheStore ( ConfigurationBuilder  builder,
boolean  async,
String  cacheName,
boolean  sessionCache 
)
inlineprivate
341  {
342  String jdgServer = config.get("remoteStoreHost", "localhost");
343  Integer jdgPort = config.getInt("remoteStorePort", 11222);
344 
345  builder.persistence()
346  .passivation(false)
347  .addStore(RemoteStoreConfigurationBuilder.class)
348  .fetchPersistentState(false)
349  .ignoreModifications(false)
350  .purgeOnStartup(false)
351  .preload(false)
352  .shared(true)
353  .remoteCacheName(cacheName)
354  .rawValues(true)
355  .forceReturnValues(false)
356  .marshaller(KeycloakHotRodMarshallerFactory.class.getName())
357  //.protocolVersion(ProtocolVersion.PROTOCOL_VERSION_26)
358  .addServer()
359  .host(jdgServer)
360  .port(jdgPort)
361 // .connectionPool()
362 // .maxActive(100)
363 // .exhaustedAction(ExhaustedAction.CREATE_NEW)
364  .async()
365  .enabled(async);
366 
367  }
Config.Scope config
Definition: DefaultInfinispanConnectionProviderFactory.java:56

◆ configureTransport()

void org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.configureTransport ( GlobalConfigurationBuilder  gcb,
String  nodeName,
String  siteName,
String  jgroupsUdpMcastAddr 
)
inlineprotected
422  {
423  if (nodeName == null) {
424  gcb.transport().defaultTransport();
425  } else {
426  FileLookup fileLookup = FileLookupFactory.newInstance();
427 
428  synchronized (CHANNEL_INIT_SYNCHRONIZER) {
429  String originalMcastAddr = System.getProperty(InfinispanConnectionProvider.JGROUPS_UDP_MCAST_ADDR);
430  if (jgroupsUdpMcastAddr == null) {
431  System.getProperties().remove(InfinispanConnectionProvider.JGROUPS_UDP_MCAST_ADDR);
432  } else {
433  System.setProperty(InfinispanConnectionProvider.JGROUPS_UDP_MCAST_ADDR, jgroupsUdpMcastAddr);
434  }
435  try {
436  // Compatibility with Wildfly
437  JChannel channel = new JChannel(fileLookup.lookupFileLocation("default-configs/default-jgroups-udp.xml", this.getClass().getClassLoader()));
438  channel.setName(nodeName);
439  JGroupsTransport transport = new JGroupsTransport(channel);
440 
441  gcb.transport()
442  .nodeName(nodeName)
443  .siteId(siteName)
444  .transport(transport)
445  .globalJmxStatistics()
446  .jmxDomain(InfinispanConnectionProvider.JMX_DOMAIN + "-" + nodeName)
447  .enable()
448  ;
449 
450  logger.infof("Configured jgroups transport with the channel name: %s", nodeName);
451  } catch (Exception e) {
452  throw new RuntimeException(e);
453  } finally {
454  if (originalMcastAddr == null) {
455  System.getProperties().remove(InfinispanConnectionProvider.JGROUPS_UDP_MCAST_ADDR);
456  } else {
457  System.setProperty(InfinispanConnectionProvider.JGROUPS_UDP_MCAST_ADDR, originalMcastAddr);
458  }
459  }
460  }
461  }
462  }
static final Logger logger
Definition: DefaultInfinispanConnectionProviderFactory.java:54
static final Object CHANNEL_INIT_SYNCHRONIZER
Definition: DefaultInfinispanConnectionProviderFactory.java:420

◆ create()

InfinispanConnectionProvider org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.create ( KeycloakSession  session)
inline

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

67  {
68  lazyInit();
69 
70  return new DefaultInfinispanConnectionProvider(cacheManager, remoteCacheProvider, topologyInfo);
71  }
TopologyInfo topologyInfo
Definition: DefaultInfinispanConnectionProviderFactory.java:64
void lazyInit()
Definition: DefaultInfinispanConnectionProviderFactory.java:99
RemoteCacheProvider remoteCacheProvider
Definition: DefaultInfinispanConnectionProviderFactory.java:60
EmbeddedCacheManager cacheManager
Definition: DefaultInfinispanConnectionProviderFactory.java:58

◆ getActionTokenCacheConfig()

ConfigurationBuilder org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.getActionTokenCacheConfig ( )
inlineprivate
406  {
407  ConfigurationBuilder cb = new ConfigurationBuilder();
408 
409  cb.memory()
410  .evictionStrategy(EvictionStrategy.NONE)
411  .evictionType(EvictionType.COUNT)
412  .size(InfinispanConnectionProvider.ACTION_TOKEN_CACHE_DEFAULT_MAX);
413  cb.expiration()
414  .maxIdle(InfinispanConnectionProvider.ACTION_TOKEN_MAX_IDLE_SECONDS, TimeUnit.SECONDS)
415  .wakeUpInterval(InfinispanConnectionProvider.ACTION_TOKEN_WAKE_UP_INTERVAL_SECONDS, TimeUnit.SECONDS);
416 
417  return cb;
418  }

◆ getId()

String org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.getId ( )
inline

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

85  {
86  return "default";
87  }

◆ getKeysCacheConfig()

Configuration org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.getKeysCacheConfig ( )
inlineprotected
394  {
395  ConfigurationBuilder cb = new ConfigurationBuilder();
396 
397  cb.memory()
398  .evictionStrategy(EvictionStrategy.REMOVE)
399  .evictionType(EvictionType.COUNT)
400  .size(InfinispanConnectionProvider.KEYS_CACHE_DEFAULT_MAX);
401 
402  cb.expiration().maxIdle(InfinispanConnectionProvider.KEYS_CACHE_MAX_IDLE_SECONDS, TimeUnit.SECONDS);
403  return cb.build();
404  }

◆ getRevisionCacheConfig()

Configuration org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.getRevisionCacheConfig ( long  maxEntries)
inlineprivate
323  {
324  ConfigurationBuilder cb = new ConfigurationBuilder();
325  cb.invocationBatching().enable().transaction().transactionMode(TransactionMode.TRANSACTIONAL);
326 
327  // Use Embedded manager even in managed ( wildfly/eap ) environment. We don't want infinispan to participate in global transaction
328  cb.transaction().transactionManagerLookup(new EmbeddedTransactionManagerLookup());
329 
330  cb.transaction().lockingMode(LockingMode.PESSIMISTIC);
331 
332  cb.memory()
333  .evictionStrategy(EvictionStrategy.REMOVE)
334  .evictionType(EvictionType.COUNT)
335  .size(maxEntries);
336 
337  return cb.build();
338  }

◆ init()

void org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.init ( Config.Scope  config)
inline

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

90  {
91  this.config = config;
92  }
Config.Scope config
Definition: DefaultInfinispanConnectionProviderFactory.java:56

◆ initContainerManaged()

void org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.initContainerManaged ( String  cacheContainerLookup)
inlineprotected
118  {
119  try {
120  cacheManager = (EmbeddedCacheManager) new InitialContext().lookup(cacheContainerLookup);
121  containerManaged = true;
122 
123  long realmRevisionsMaxEntries = cacheManager.getCache(InfinispanConnectionProvider.REALM_CACHE_NAME).getCacheConfiguration().memory().size();
124  realmRevisionsMaxEntries = realmRevisionsMaxEntries > 0
125  ? 2 * realmRevisionsMaxEntries
126  : InfinispanConnectionProvider.REALM_REVISIONS_CACHE_DEFAULT_MAX;
127 
128  cacheManager.defineConfiguration(InfinispanConnectionProvider.REALM_REVISIONS_CACHE_NAME, getRevisionCacheConfig(realmRevisionsMaxEntries));
129  cacheManager.getCache(InfinispanConnectionProvider.REALM_REVISIONS_CACHE_NAME, true);
130 
131  long userRevisionsMaxEntries = cacheManager.getCache(InfinispanConnectionProvider.USER_CACHE_NAME).getCacheConfiguration().memory().size();
132  userRevisionsMaxEntries = userRevisionsMaxEntries > 0
133  ? 2 * userRevisionsMaxEntries
134  : InfinispanConnectionProvider.USER_REVISIONS_CACHE_DEFAULT_MAX;
135 
136  cacheManager.defineConfiguration(InfinispanConnectionProvider.USER_REVISIONS_CACHE_NAME, getRevisionCacheConfig(userRevisionsMaxEntries));
137  cacheManager.getCache(InfinispanConnectionProvider.USER_REVISIONS_CACHE_NAME, true);
138  cacheManager.getCache(InfinispanConnectionProvider.AUTHORIZATION_CACHE_NAME, true);
139  cacheManager.getCache(InfinispanConnectionProvider.AUTHENTICATION_SESSIONS_CACHE_NAME, true);
140  cacheManager.getCache(InfinispanConnectionProvider.KEYS_CACHE_NAME, true);
141  cacheManager.getCache(InfinispanConnectionProvider.ACTION_TOKEN_CACHE, true);
142 
143  long authzRevisionsMaxEntries = cacheManager.getCache(InfinispanConnectionProvider.AUTHORIZATION_CACHE_NAME).getCacheConfiguration().memory().size();
144  authzRevisionsMaxEntries = authzRevisionsMaxEntries > 0
145  ? 2 * authzRevisionsMaxEntries
146  : InfinispanConnectionProvider.AUTHORIZATION_REVISIONS_CACHE_DEFAULT_MAX;
147 
148  cacheManager.defineConfiguration(InfinispanConnectionProvider.AUTHORIZATION_REVISIONS_CACHE_NAME, getRevisionCacheConfig(authzRevisionsMaxEntries));
149  cacheManager.getCache(InfinispanConnectionProvider.AUTHORIZATION_REVISIONS_CACHE_NAME, true);
150 
151  this.topologyInfo = new TopologyInfo(cacheManager, config, false);
152 
153  logger.debugv("Using container managed Infinispan cache container, lookup={0}", cacheContainerLookup);
154  } catch (Exception e) {
155  throw new RuntimeException("Failed to retrieve cache container", e);
156  }
157  }
boolean containerManaged
Definition: DefaultInfinispanConnectionProviderFactory.java:62
Configuration getRevisionCacheConfig(long maxEntries)
Definition: DefaultInfinispanConnectionProviderFactory.java:323
Config.Scope config
Definition: DefaultInfinispanConnectionProviderFactory.java:56
TopologyInfo topologyInfo
Definition: DefaultInfinispanConnectionProviderFactory.java:64
static final Logger logger
Definition: DefaultInfinispanConnectionProviderFactory.java:54
EmbeddedCacheManager cacheManager
Definition: DefaultInfinispanConnectionProviderFactory.java:58

◆ initEmbedded()

void org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.initEmbedded ( )
inlineprotected
159  {
160 
161 
162 
163  GlobalConfigurationBuilder gcb = new GlobalConfigurationBuilder();
164 
165  boolean clustered = config.getBoolean("clustered", false);
166  boolean async = config.getBoolean("async", false);
167  boolean allowDuplicateJMXDomains = config.getBoolean("allowDuplicateJMXDomains", true);
168 
169  this.topologyInfo = new TopologyInfo(cacheManager, config, true);
170 
171  if (clustered) {
172  String jgroupsUdpMcastAddr = config.get("jgroupsUdpMcastAddr", System.getProperty(InfinispanConnectionProvider.JGROUPS_UDP_MCAST_ADDR));
174  gcb.globalJmxStatistics()
175  .jmxDomain(InfinispanConnectionProvider.JMX_DOMAIN + "-" + topologyInfo.getMyNodeName());
176  }
177 
178  gcb.globalJmxStatistics()
179  .allowDuplicateDomains(allowDuplicateJMXDomains)
180  .enable();
181 
182  cacheManager = new DefaultCacheManager(gcb.build());
183  containerManaged = false;
184 
185  logger.debug("Started embedded Infinispan cache container");
186 
187  ConfigurationBuilder modelCacheConfigBuilder = new ConfigurationBuilder();
188  Configuration modelCacheConfiguration = modelCacheConfigBuilder.build();
189 
190  cacheManager.defineConfiguration(InfinispanConnectionProvider.REALM_CACHE_NAME, modelCacheConfiguration);
191  cacheManager.defineConfiguration(InfinispanConnectionProvider.AUTHORIZATION_CACHE_NAME, modelCacheConfiguration);
192  cacheManager.defineConfiguration(InfinispanConnectionProvider.USER_CACHE_NAME, modelCacheConfiguration);
193 
194  ConfigurationBuilder sessionConfigBuilder = new ConfigurationBuilder();
195  if (clustered) {
196  String sessionsMode = config.get("sessionsMode", "distributed");
197  if (sessionsMode.equalsIgnoreCase("replicated")) {
198  sessionConfigBuilder.clustering().cacheMode(async ? CacheMode.REPL_ASYNC : CacheMode.REPL_SYNC);
199  } else if (sessionsMode.equalsIgnoreCase("distributed")) {
200  sessionConfigBuilder.clustering().cacheMode(async ? CacheMode.DIST_ASYNC : CacheMode.DIST_SYNC);
201  } else {
202  throw new RuntimeException("Invalid value for sessionsMode");
203  }
204 
205  int l1Lifespan = config.getInt("l1Lifespan", 600000);
206  boolean l1Enabled = l1Lifespan > 0;
207  sessionConfigBuilder.clustering()
208  .hash()
209  .numOwners(config.getInt("sessionsOwners", 2))
210  .numSegments(config.getInt("sessionsSegments", 60))
211  .l1()
212  .enabled(l1Enabled)
213  .lifespan(l1Lifespan)
214  .build();
215  }
216 
217  // Base configuration doesn't contain any remote stores
218  Configuration sessionCacheConfigurationBase = sessionConfigBuilder.build();
219 
220  boolean jdgEnabled = config.getBoolean("remoteStoreEnabled", false);
221 
222  if (jdgEnabled) {
223  sessionConfigBuilder = new ConfigurationBuilder();
224  sessionConfigBuilder.read(sessionCacheConfigurationBase);
225  configureRemoteCacheStore(sessionConfigBuilder, async, InfinispanConnectionProvider.USER_SESSION_CACHE_NAME, true);
226  }
227  Configuration sessionCacheConfiguration = sessionConfigBuilder.build();
228  cacheManager.defineConfiguration(InfinispanConnectionProvider.USER_SESSION_CACHE_NAME, sessionCacheConfiguration);
229 
230  if (jdgEnabled) {
231  sessionConfigBuilder = new ConfigurationBuilder();
232  sessionConfigBuilder.read(sessionCacheConfigurationBase);
233  configureRemoteCacheStore(sessionConfigBuilder, async, InfinispanConnectionProvider.OFFLINE_USER_SESSION_CACHE_NAME, true);
234  }
235  sessionCacheConfiguration = sessionConfigBuilder.build();
236  cacheManager.defineConfiguration(InfinispanConnectionProvider.OFFLINE_USER_SESSION_CACHE_NAME, sessionCacheConfiguration);
237 
238  if (jdgEnabled) {
239  sessionConfigBuilder = new ConfigurationBuilder();
240  sessionConfigBuilder.read(sessionCacheConfigurationBase);
241  configureRemoteCacheStore(sessionConfigBuilder, async, InfinispanConnectionProvider.CLIENT_SESSION_CACHE_NAME, true);
242  }
243  sessionCacheConfiguration = sessionConfigBuilder.build();
244  cacheManager.defineConfiguration(InfinispanConnectionProvider.CLIENT_SESSION_CACHE_NAME, sessionCacheConfiguration);
245 
246  if (jdgEnabled) {
247  sessionConfigBuilder = new ConfigurationBuilder();
248  sessionConfigBuilder.read(sessionCacheConfigurationBase);
249  configureRemoteCacheStore(sessionConfigBuilder, async, InfinispanConnectionProvider.OFFLINE_CLIENT_SESSION_CACHE_NAME, true);
250  }
251  sessionCacheConfiguration = sessionConfigBuilder.build();
252  cacheManager.defineConfiguration(InfinispanConnectionProvider.OFFLINE_CLIENT_SESSION_CACHE_NAME, sessionCacheConfiguration);
253 
254  if (jdgEnabled) {
255  sessionConfigBuilder = new ConfigurationBuilder();
256  sessionConfigBuilder.read(sessionCacheConfigurationBase);
257  configureRemoteCacheStore(sessionConfigBuilder, async, InfinispanConnectionProvider.LOGIN_FAILURE_CACHE_NAME, true);
258  }
259  sessionCacheConfiguration = sessionConfigBuilder.build();
260  cacheManager.defineConfiguration(InfinispanConnectionProvider.LOGIN_FAILURE_CACHE_NAME, sessionCacheConfiguration);
261 
262  cacheManager.defineConfiguration(InfinispanConnectionProvider.AUTHENTICATION_SESSIONS_CACHE_NAME, sessionCacheConfigurationBase);
263 
264  // Retrieve caches to enforce rebalance
265  cacheManager.getCache(InfinispanConnectionProvider.USER_SESSION_CACHE_NAME, true);
266  cacheManager.getCache(InfinispanConnectionProvider.OFFLINE_USER_SESSION_CACHE_NAME, true);
267  cacheManager.getCache(InfinispanConnectionProvider.CLIENT_SESSION_CACHE_NAME, true);
268  cacheManager.getCache(InfinispanConnectionProvider.OFFLINE_CLIENT_SESSION_CACHE_NAME, true);
269  cacheManager.getCache(InfinispanConnectionProvider.LOGIN_FAILURE_CACHE_NAME, true);
270  cacheManager.getCache(InfinispanConnectionProvider.AUTHENTICATION_SESSIONS_CACHE_NAME, true);
271 
272  ConfigurationBuilder replicationConfigBuilder = new ConfigurationBuilder();
273  if (clustered) {
274  replicationConfigBuilder.clustering().cacheMode(async ? CacheMode.REPL_ASYNC : CacheMode.REPL_SYNC);
275  }
276 
277  if (jdgEnabled) {
278  configureRemoteCacheStore(replicationConfigBuilder, async, InfinispanConnectionProvider.WORK_CACHE_NAME, false);
279  }
280 
281  Configuration replicationEvictionCacheConfiguration = replicationConfigBuilder.build();
282  cacheManager.defineConfiguration(InfinispanConnectionProvider.WORK_CACHE_NAME, replicationEvictionCacheConfiguration);
283 
284  long realmRevisionsMaxEntries = cacheManager.getCache(InfinispanConnectionProvider.REALM_CACHE_NAME).getCacheConfiguration().memory().size();
285  realmRevisionsMaxEntries = realmRevisionsMaxEntries > 0
286  ? 2 * realmRevisionsMaxEntries
287  : InfinispanConnectionProvider.REALM_REVISIONS_CACHE_DEFAULT_MAX;
288 
289  cacheManager.defineConfiguration(InfinispanConnectionProvider.REALM_REVISIONS_CACHE_NAME, getRevisionCacheConfig(realmRevisionsMaxEntries));
290  cacheManager.getCache(InfinispanConnectionProvider.REALM_REVISIONS_CACHE_NAME, true);
291 
292  long userRevisionsMaxEntries = cacheManager.getCache(InfinispanConnectionProvider.USER_CACHE_NAME).getCacheConfiguration().memory().size();
293  userRevisionsMaxEntries = userRevisionsMaxEntries > 0
294  ? 2 * userRevisionsMaxEntries
295  : InfinispanConnectionProvider.USER_REVISIONS_CACHE_DEFAULT_MAX;
296 
297  cacheManager.defineConfiguration(InfinispanConnectionProvider.USER_REVISIONS_CACHE_NAME, getRevisionCacheConfig(userRevisionsMaxEntries));
298  cacheManager.getCache(InfinispanConnectionProvider.USER_REVISIONS_CACHE_NAME, true);
299 
300  cacheManager.defineConfiguration(InfinispanConnectionProvider.KEYS_CACHE_NAME, getKeysCacheConfig());
301  cacheManager.getCache(InfinispanConnectionProvider.KEYS_CACHE_NAME, true);
302 
303  final ConfigurationBuilder actionTokenCacheConfigBuilder = getActionTokenCacheConfig();
304  if (clustered) {
305  actionTokenCacheConfigBuilder.clustering().cacheMode(async ? CacheMode.REPL_ASYNC : CacheMode.REPL_SYNC);
306  }
307  if (jdgEnabled) {
308  configureRemoteActionTokenCacheStore(actionTokenCacheConfigBuilder, async);
309  }
310  cacheManager.defineConfiguration(InfinispanConnectionProvider.ACTION_TOKEN_CACHE, actionTokenCacheConfigBuilder.build());
311  cacheManager.getCache(InfinispanConnectionProvider.ACTION_TOKEN_CACHE, true);
312 
313  long authzRevisionsMaxEntries = cacheManager.getCache(InfinispanConnectionProvider.AUTHORIZATION_CACHE_NAME).getCacheConfiguration().memory().size();
314  authzRevisionsMaxEntries = authzRevisionsMaxEntries > 0
315  ? 2 * authzRevisionsMaxEntries
316  : InfinispanConnectionProvider.AUTHORIZATION_REVISIONS_CACHE_DEFAULT_MAX;
317 
318  cacheManager.defineConfiguration(InfinispanConnectionProvider.AUTHORIZATION_REVISIONS_CACHE_NAME, getRevisionCacheConfig(authzRevisionsMaxEntries));
319  cacheManager.getCache(InfinispanConnectionProvider.AUTHORIZATION_REVISIONS_CACHE_NAME, true);
320  }
ConfigurationBuilder getActionTokenCacheConfig()
Definition: DefaultInfinispanConnectionProviderFactory.java:406
boolean containerManaged
Definition: DefaultInfinispanConnectionProviderFactory.java:62
Configuration getRevisionCacheConfig(long maxEntries)
Definition: DefaultInfinispanConnectionProviderFactory.java:323
Configuration getKeysCacheConfig()
Definition: DefaultInfinispanConnectionProviderFactory.java:394
Config.Scope config
Definition: DefaultInfinispanConnectionProviderFactory.java:56
TopologyInfo topologyInfo
Definition: DefaultInfinispanConnectionProviderFactory.java:64
String getMySiteName()
Definition: TopologyInfo.java:117
static final Logger logger
Definition: DefaultInfinispanConnectionProviderFactory.java:54
String getMyNodeName()
Definition: TopologyInfo.java:113
void configureRemoteCacheStore(ConfigurationBuilder builder, boolean async, String cacheName, boolean sessionCache)
Definition: DefaultInfinispanConnectionProviderFactory.java:341
void configureTransport(GlobalConfigurationBuilder gcb, String nodeName, String siteName, String jgroupsUdpMcastAddr)
Definition: DefaultInfinispanConnectionProviderFactory.java:422
EmbeddedCacheManager cacheManager
Definition: DefaultInfinispanConnectionProviderFactory.java:58
void configureRemoteActionTokenCacheStore(ConfigurationBuilder builder, boolean async)
Definition: DefaultInfinispanConnectionProviderFactory.java:369

◆ lazyInit()

void org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.lazyInit ( )
inlineprotected
99  {
100  if (cacheManager == null) {
101  synchronized (this) {
102  if (cacheManager == null) {
103  String cacheContainer = config.get("cacheContainer");
104  if (cacheContainer != null) {
105  initContainerManaged(cacheContainer);
106  } else {
107  initEmbedded();
108  }
109 
110  logger.infof(topologyInfo.toString());
111 
112  remoteCacheProvider = new RemoteCacheProvider(config, cacheManager);
113  }
114  }
115  }
116  }
void initEmbedded()
Definition: DefaultInfinispanConnectionProviderFactory.java:159
void initContainerManaged(String cacheContainerLookup)
Definition: DefaultInfinispanConnectionProviderFactory.java:118
Config.Scope config
Definition: DefaultInfinispanConnectionProviderFactory.java:56
TopologyInfo topologyInfo
Definition: DefaultInfinispanConnectionProviderFactory.java:64
static final Logger logger
Definition: DefaultInfinispanConnectionProviderFactory.java:54
String toString()
Definition: TopologyInfo.java:123
RemoteCacheProvider remoteCacheProvider
Definition: DefaultInfinispanConnectionProviderFactory.java:60
EmbeddedCacheManager cacheManager
Definition: DefaultInfinispanConnectionProviderFactory.java:58

◆ order()

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

◆ postInit()

void org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.postInit ( KeycloakSessionFactory  factory)
inline

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

95  {
96 
97  }

メンバ詳解

◆ cacheManager

EmbeddedCacheManager org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.cacheManager
protected

◆ CHANNEL_INIT_SYNCHRONIZER

final Object org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.CHANNEL_INIT_SYNCHRONIZER = new Object()
staticprivate

◆ config

Config.Scope org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.config
protected

◆ containerManaged

boolean org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.containerManaged
protected

◆ logger

final Logger org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.logger = Logger.getLogger(DefaultInfinispanConnectionProviderFactory.class)
staticprotected

◆ remoteCacheProvider

RemoteCacheProvider org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.remoteCacheProvider
protected

◆ topologyInfo

TopologyInfo org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory.topologyInfo
private

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