keycloak
クラス | 公開メンバ関数 | 限定公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.adapters.NodesRegistrationManagement クラス
org.keycloak.adapters.NodesRegistrationManagement 連携図
Collaboration graph

クラス

class  NodeRegistrationContext
 

公開メンバ関数

void tryRegister (final KeycloakDeployment resolvedDeployment)
 
void stop ()
 

限定公開メンバ関数

void sendRegistrationEvent (KeycloakDeployment deployment)
 
boolean sendUnregistrationEvent (KeycloakDeployment deployment)
 

非公開メンバ関数

boolean needRefreshRegistration (String registrationUri, KeycloakDeployment resolvedDeployment)
 

非公開変数類

final Map< String, NodeRegistrationContextnodeRegistrations = new ConcurrentHashMap<String, NodeRegistrationContext>()
 
final Executor executor = Executors.newSingleThreadExecutor()
 

静的非公開変数類

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

詳解

著者
Marek Posolda

関数詳解

◆ needRefreshRegistration()

boolean org.keycloak.adapters.NodesRegistrationManagement.needRefreshRegistration ( String  registrationUri,
KeycloakDeployment  resolvedDeployment 
)
inlineprivate

We don't yet have any registration for this node

61  {
62  NodeRegistrationContext currentRegistration = nodeRegistrations.get(registrationUri);
64  if (currentRegistration == null) {
65  return true;
66  }
67 
68  return currentRegistration.lastRegistrationTime + resolvedDeployment.getRegisterNodePeriod() < Time.currentTime();
69  }
final Map< String, NodeRegistrationContext > nodeRegistrations
Definition: NodesRegistrationManagement.java:38

◆ sendRegistrationEvent()

void org.keycloak.adapters.NodesRegistrationManagement.sendRegistrationEvent ( KeycloakDeployment  deployment)
inlineprotected
81  {
82  log.debug("Sending registration event right now");
83 
84  String host = HostUtils.getHostName();
85  try {
86  ServerRequest.invokeRegisterNode(deployment, host);
87  NodeRegistrationContext regContext = new NodeRegistrationContext(Time.currentTime(), deployment);
88  nodeRegistrations.put(deployment.getRegisterNodeUrl(), regContext);
89  log.debugf("Node '%s' successfully registered in Keycloak", host);
90  } catch (ServerRequest.HttpFailure failure) {
91  log.error("failed to register node to keycloak");
92  log.error("status from server: " + failure.getStatus());
93  if (failure.getError() != null) {
94  log.error(" " + failure.getError());
95  }
96  } catch (IOException e) {
97  log.error("failed to register node to keycloak", e);
98  }
99  }
static final Logger log
Definition: NodesRegistrationManagement.java:36
final Map< String, NodeRegistrationContext > nodeRegistrations
Definition: NodesRegistrationManagement.java:38

◆ sendUnregistrationEvent()

boolean org.keycloak.adapters.NodesRegistrationManagement.sendUnregistrationEvent ( KeycloakDeployment  deployment)
inlineprotected
101  {
102  log.debug("Sending Unregistration event right now");
103 
104  String host = HostUtils.getHostName();
105  try {
106  ServerRequest.invokeUnregisterNode(deployment, host);
107  log.debugf("Node '%s' successfully unregistered from Keycloak", host);
108  return true;
109  } catch (ServerRequest.HttpFailure failure) {
110  log.error("failed to unregister node from keycloak");
111  log.error("status from server: " + failure.getStatus());
112  if (failure.getError() != null) {
113  log.error(" " + failure.getError());
114  }
115  return false;
116  } catch (IOException e) {
117  log.error("failed to unregister node from keycloak", e);
118  return false;
119  }
120  }
static final Logger log
Definition: NodesRegistrationManagement.java:36

◆ stop()

void org.keycloak.adapters.NodesRegistrationManagement.stop ( )
inline

Called during undeployment or server stop. De-register from all previously registered deployments

74  {
75  Collection<NodeRegistrationContext> allRegistrations = nodeRegistrations.values();
76  for (NodeRegistrationContext registration : allRegistrations) {
77  sendUnregistrationEvent(registration.resolvedDeployment);
78  }
79  }
boolean sendUnregistrationEvent(KeycloakDeployment deployment)
Definition: NodesRegistrationManagement.java:101
final Map< String, NodeRegistrationContext > nodeRegistrations
Definition: NodesRegistrationManagement.java:38

◆ tryRegister()

void org.keycloak.adapters.NodesRegistrationManagement.tryRegister ( final KeycloakDeployment  resolvedDeployment)
inline
42  {
43  if (resolvedDeployment.isRegisterNodeAtStartup()) {
44  final String registrationUri = resolvedDeployment.getRegisterNodeUrl();
45  if (needRefreshRegistration(registrationUri, resolvedDeployment)) {
46  Runnable runnable = new Runnable() {
47 
48  @Override
49  public void run() {
50  // Need to check it again in case that executor triggered by other thread already finished computation in the meantime
51  if (needRefreshRegistration(registrationUri, resolvedDeployment)) {
52  sendRegistrationEvent(resolvedDeployment);
53  }
54  }
55  };
56  executor.execute(runnable);
57  }
58  }
59  }
boolean needRefreshRegistration(String registrationUri, KeycloakDeployment resolvedDeployment)
Definition: NodesRegistrationManagement.java:61
void sendRegistrationEvent(KeycloakDeployment deployment)
Definition: NodesRegistrationManagement.java:81
final Executor executor
Definition: NodesRegistrationManagement.java:39

メンバ詳解

◆ executor

final Executor org.keycloak.adapters.NodesRegistrationManagement.executor = Executors.newSingleThreadExecutor()
private

◆ log

final Logger org.keycloak.adapters.NodesRegistrationManagement.log = Logger.getLogger(NodesRegistrationManagement.class)
staticprivate

◆ nodeRegistrations

final Map<String, NodeRegistrationContext> org.keycloak.adapters.NodesRegistrationManagement.nodeRegistrations = new ConcurrentHashMap<String, NodeRegistrationContext>()
private

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