【问题标题】:Keycloak/Undertow/JBoss-CLI - Set "web-context" from environment variableKeycloak/Undertow/JBoss-CLI - 从环境变量中设置“web-context”
【发布时间】:2018-04-04 04:38:54
【问题描述】:

我对 Wildfly/Undertow 和 JBoss-CLI 设置 Keycloak 的 Web 上下文有疑问。

环境变量本身似乎没有被解析,但其他环境变量似乎被解析了。

我创建了以下 CLI 脚本:

/subsystem=keycloak-server/:write-attribute(name=web-context,value=${env.KEYCLOAK_WEB_CONTEXT:auth})

由 docker build 执行,standalone.xml 中的结果看起来也不错:)

当启动 Keycloak-Service 时,它​​不会解析变量,它只会使用变量本身:

14:30:30,556 INFO  [org.wildfly.extension.undertow] (ServerService
Thread Pool -- 60) WFLYUT0021: Registered web context:
'/${env.KEYCLOAK_WEB_CONTEXT:auth}' for server 'default-server'

在将 jboss-cli.sh 连接到容器并请求我得到的变量后:

[standalone@localhost:9990 subsystem=keycloak-server] ls -l
ATTRIBUTE VALUE TYPE
web-context ${env.KEYCLOAK_WEB_CONTEXT:auth} STRING

使用已解析的表达式:

[standalone@localhost:9990 subsystem=keycloak-server] ls -l --resolve-expressions
ATTRIBUTE VALUE TYPE
web-context helloworld/auth  STRING

到目前为止,一切看起来都很好。任何想法为什么 Undertow 以变量而不是已解析变量开头?这是一个潜在的错误吗?

最好的问候,感谢您的帮助!

【问题讨论】:

    标签: jboss wildfly keycloak undertow


    【解决方案1】:

    我知道这已经有两年了,但我最近试图解决这个问题,我想通了,所以我想如果有人遇到这个问题,我会跟进。

    不要在表达式中使用 ${env.VAR} 模式,而是在脚本顶部使用它们作为变量赋值。借鉴父示例:

    set CONTEXT=${env.KEYCLOAK_WEB_CONTEXT}
    /subsystem=keycloak-server/:write-attribute(name=web-context,value=$CONTEXT)
    

    环境变量作为 $CONTEXT 的值被拉入,即使它在 write-attribute 行中使用时对我没有用。

    【讨论】:

    • 我刚刚用它创建了一个 cli,但是在启动服务器时它失败并出现以下错误:No connection to the controller. 看起来应该首先启动服务器,但是如果服务器正在运行,我会得到一个不同的错误Can't reset to root in the middle of the path @74 ...知道吗?你如何以及何时运行你的脚本......你能分享一下吗?
    猜你喜欢
    • 2015-08-01
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    • 2014-08-02
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多