我们开始使用 keycloak 3.4.3,我们需要在我们的应用程序中引入模拟功能。我们发现 keycloak 有一个模拟 api,不幸的是它不会为用户返回令牌,而是返回一个重定向链接,用户可以“选择”自己的客户端。
我们在这里找到了
https://blog.softwaremill.com/who-am-i-keycloak-impersonation-api-bfe7acaf051a
一种检索新令牌的方法(在 scala 中)(仅适用于 keycloak 3.4+):
private def exchangeToken(token: String, userId: String): Future[TokenResponse] = {
import io.circe.generic.auto._
sttp
.post(uri"${config.authServerUrl}/realms/${config.realm}/protocol/openid-connect/token")
.body(
"grant_type" -> "urn:ietf:params:oauth:grant-type:token-exchange",
"client_id" -> config.clientId,
"requested_subject" -> userId,
"subject_token" -> token
)
.response(asJson[TokenResponse])
.send()
.flatMap {
_.body match {
case Left(error) => Future.failed(new RuntimeException(error))
case Right(Left(circeError)) => Future.failed(circeError)
case Right(Right(tokenResponse)) => Future.successful(tokenResponse)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试基于它创建一个curl命令:
curl --verbose -X POST "http://<host>/auth/realms/master/protocol/openid-connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \
-d 'client_id=admin_cli' \ …Run Code Online (Sandbox Code Playgroud) I started using elastic search 7.3.2 and kibana 6.8.3 on mac os mojave 10.14.5.
当 kibana 启动时,出现以下错误: log [15:21:03.052] [error][status][plugin:xpack_main@7.3.2] Statuschanged from Yellow to red - This version of Kibana require Elasticsearch v7.3.2 on all Nodes 。我在集群中发现以下不兼容的节点:v6.2.4 @ 127.0.0.1:9200 (127.0.0.1) log [15:21:03.052] [error][status][plugin:graph@7.3.2] Statuschanged from黄色到红色 - 此版本的 Kibana 需要在所有节点上使用 Elasticsearch v7.3.2。我在您的集群中发现以下不兼容的节点:v6.2.4 @ 127.0.0.1:9200 (127.0.0.1)
过去(几年前)我使用的是 6.2.4 版本。我怎样才能删除这些节点?我不再需要它们了,如何删除它们才能让 kibana 正确启动?
感谢您的帮助(如果有)