keycloak
公開メンバ関数 | 限定公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.models.sessions.infinispan.events.AbstractUserSessionClusterListener< SE extends SessionClusterEvent > クラステンプレートabstract
org.keycloak.models.sessions.infinispan.events.AbstractUserSessionClusterListener< SE extends SessionClusterEvent > の継承関係図
Inheritance graph
org.keycloak.models.sessions.infinispan.events.AbstractUserSessionClusterListener< SE extends SessionClusterEvent > 連携図
Collaboration graph

公開メンバ関数

 AbstractUserSessionClusterListener (KeycloakSessionFactory sessionFactory)
 
void eventReceived (ClusterEvent event)
 

限定公開メンバ関数

abstract void eventReceived (KeycloakSession session, InfinispanUserSessionProvider provider, SE sessionEvent)
 

非公開メンバ関数

boolean shouldResendEvent (KeycloakSession session, SessionClusterEvent event)
 

非公開変数類

final KeycloakSessionFactory sessionFactory
 

静的非公開変数類

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

詳解

著者
Marek Posolda

構築子と解体子

◆ AbstractUserSessionClusterListener()

42  {
44  }
final KeycloakSessionFactory sessionFactory
Definition: AbstractUserSessionClusterListener.java:40

関数詳解

◆ eventReceived() [1/2]

org.keycloak.cluster.ClusterListenerを実装しています。

48  {
49  KeycloakModelUtils.runJobInTransaction(sessionFactory, (KeycloakSession session) -> {
50  InfinispanUserSessionProvider provider = (InfinispanUserSessionProvider) session.getProvider(UserSessionProvider.class, InfinispanUserSessionProviderFactory.PROVIDER_ID);
51  SE sessionEvent = (SE) event;
52 
53  boolean shouldResendEvent = shouldResendEvent(session, sessionEvent);
54 
55  if (log.isDebugEnabled()) {
56  log.debugf("Received user session event '%s'. Should resend event: %b", sessionEvent.toString(), shouldResendEvent);
57  }
58 
59  eventReceived(session, provider, sessionEvent);
60 
61  if (shouldResendEvent) {
62  session.getProvider(ClusterProvider.class).notify(sessionEvent.getEventKey(), event, true, ClusterProvider.DCNotify.ALL_BUT_LOCAL_DC);
63  }
64 
65  });
66  }
boolean shouldResendEvent(KeycloakSession session, SessionClusterEvent event)
Definition: AbstractUserSessionClusterListener.java:71
static final Logger log
Definition: AbstractUserSessionClusterListener.java:38
final KeycloakSessionFactory sessionFactory
Definition: AbstractUserSessionClusterListener.java:40
void eventReceived(ClusterEvent event)
Definition: AbstractUserSessionClusterListener.java:48

◆ eventReceived() [2/2]

abstract void org.keycloak.models.sessions.infinispan.events.AbstractUserSessionClusterListener< SE extends SessionClusterEvent >.eventReceived ( KeycloakSession  session,
InfinispanUserSessionProvider  provider,
SE  sessionEvent 
)
abstractprotected

◆ shouldResendEvent()

71  {
72  if (!event.isResendingEvent()) {
73  return false;
74  }
75 
76  // Just the initiator will re-send the event after receiving it
77  TopologyInfo topology = InfinispanUtil.getTopologyInfo(session);
78  String myNode = topology.getMyNodeName();
79  String mySite = topology.getMySiteName();
80  return (event.getNodeId() != null && event.getNodeId().equals(myNode) && event.getSiteId() != null && event.getSiteId().equals(mySite));
81  }

メンバ詳解

◆ log

final Logger org.keycloak.models.sessions.infinispan.events.AbstractUserSessionClusterListener< SE extends SessionClusterEvent >.log = Logger.getLogger(AbstractUserSessionClusterListener.class)
staticprivate

◆ sessionFactory


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