我有一个关于Wildfly / Undertow和JBoss-CLI设置Keycloak网络环境的问题。
环境变量似乎无法在下载中解决,但其他环境变量似乎已得到解决。
我创建了以下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从变量开始而不是解决变量?这是一个潜在的错误吗?
致以最诚挚的问候,谢谢您的帮助!
答案 0 :(得分:0)
我知道这已经两岁了,但是我最近试图解决这个问题,并且我想出了办法,所以我想如果有人遇到这个问题,我会进行跟进。
不要在表达式中使用$ {env.VAR}模式,而是在脚本顶部将它们用作变量分配。从上级示例中借用:
set CONTEXT=${env.KEYCLOAK_WEB_CONTEXT}
/subsystem=keycloak-server/:write-attribute(name=web-context,value=$CONTEXT)
环境变量将作为$ CONTEXT的值输入,即使在写属性行中使用时对我而言都无效。