通过 CLI 配置 Keycloak eventsListener

Posted

技术标签:

【中文标题】通过 CLI 配置 Keycloak eventsListener【英文标题】:Configure Keycloak eventsListener via CLI 【发布时间】:2020-12-27 22:29:13 【问题描述】:

我已经为Keycloak 实现了一个自定义事件侦听器,并且能够使用standalone-ha.xml 提供其配置

<!-- This works -->
<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">
    ...
    <spi name="eventsListener">
        <provider name="custom-listener" enabled="true">
            <properties>
                <property name="host" value="http://host.docker.internal:9999"/>
            </properties>
        </provider>
    </spi>
    ...

现在我正在尝试使用 CLI 实现相同的配置。

我打电话给jboss-cli.sh

[disconnected /] connect
[standalone@localhost:9990 /] /subsystem=keycloak-server/spi=eventsListener/provider=custom-listener/:map-put(name=properties,key=host,value=http://host.docker.internal:9999)

并得到错误:


    "outcome" => "failed",
    "failure-description" => "WFLYCTL0216: Management resource '[
    (\"subsystem\" => \"keycloak-server\"),
    (\"spi\" => \"eventsListener\")
]' not found",
    "rolled-back" => true

当我通过 CLI 浏览到适当的文件夹时,我看不到所有可用于 Keycloak 的 SPI:

[standalone@localhost:9990 /] cd subsystem=keycloak-server/spi
[standalone@localhost:9990 spi] ls
connectionsHttpClient  connectionsJpa         hostname               publicKeyStorage       timer                  userSessionPersister
connectionsInfinispan  eventsStore            jta-lookup             realmCache             userCache              x509cert-lookup

问题是:其余的 SPI 在哪里?或者更具体地说,如何通过 CLI 配置eventsListener SPI?

【问题讨论】:

【参考方案1】:

最后,我想通了。

subsystem=keycloak-server/spi 的内容与standalone-ha.xml 文件完全匹配。因此,eventsListener 在您明确创建之前不可用。

此 CLI 指令序列有效:

/subsystem=keycloak-server/spi=eventsListener/:add
/subsystem=keycloak-server/spi=eventsListener/provider=custom-listener:add(enabled=true)
/subsystem=keycloak-server/spi=eventsListener/provider=custom-listener/:map-put(name=properties,key=host,value=http://host.docker.internal:9999)

【讨论】:

以上是关于通过 CLI 配置 Keycloak eventsListener的主要内容,如果未能解决你的问题,请参考以下文章

是否可以通过 CLI - GUI 在(Keycloak 或 RH-SSO)中创建领域?

Keycloak:Admin-cli 添加 SMTP 服务器详细信息?

如何从 Wildfly 中删除 KeyCloak?

为啥 keycloak 隐藏“用户”部分下的“服务帐户管理员 cli”用户?

Keycloak/Undertow/JBoss-CLI - 从环境变量中设置“web-context”

为啥在 Keycloak 中的默认客户端“admin-cli”中未在 JWT 中显示构建声明?