Keycloak / Undertow / JBoss-CLI-从环境变量设置“网络上下文”

问题描述 投票:3回答:1

关于Wildfly / Undertow和JBoss-CLI设置Keycloak的网络上下文,我有问题。

环境变量似乎不能在underwow本身中解决,但是其他环境变量似乎可以解决。

我已经创建了以下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个回答
0
投票

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

而不是在表达式中使用$ {env.VAR}模式,而是在脚本顶部将它们用作变量分配。从父示例中借用:

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

尽管环境变量在写入属性行中使用时对我没有用,但它会作为$ CONTEXT的值输入。

© www.soinside.com 2019 - 2024. All rights reserved.