首页 > 解决方案 > CLI 脚本 - 使用环境属性启用提供程序

问题描述

使用 Keycloak 安装 9.0.2。

从 keycloak 文档中,可以在 CLI 脚本中通过以下方式配置 SPI 和提供程序:

**/spi=dblock/:add(default-provider=jpa)
**/spi=dblock/provider=jpa/:add(properties={lockWaitTimeout => "900" },enabled=true)

为了设置属性并使用环境属性启用提供程序,我在脚本中完成了以下操作(改编自公共文档案例):

**/spi=dblock/:add(default-provider=jpa)
**/spi=dblock/provider=jpa/:add(properties={lockWaitTimeout => "${env.LOCK_WAIT_TIMEOUT:900}" },enabled="${env.ENABLE_JPA:true}")

在独立模式下运行我的服务器会导致我的standalone.xml 文件中的以下配置:

...
<spi name="dblock">
    <provider name="jpa" enabled="false">
        <properties>
            <property name="lockWaitTimeout" value="${env.LOCK_WAIT_TIMEOUT:900}"/>
        </properties>
    </provider>
</spi>
...

使用环境变量正确评估属性,但如上所述设置启用值将始终导致它被静态评估为 false。

是否不可能在这个级别使用环境变量并且有人知道我应该怎么做?非常感谢您的时间。

标签: wildflykeycloakjboss-cli

解决方案


我遇到了同样的问题,并花了很长时间试图让它工作。不幸的是,这是不可能的。

根据此错误报告,您可以使用EnvironmentDependentProviderFactory.isSupported()作为替代方案。


推荐阅读