这是一个在wildfly上使用key斗篷作为认证后端的JavaEE应用程序。这在project-stage .yml中配置:
swarm:部署:my.app.war: web: login-config: auth-method: KEYCLOAK
应用程序将使用Gitlab-CD-Pipeline在不同的环境中实现。因此,必须对每个环境配置key斗篷。
现在,我发现唯一的工作配置是添加一个keycloak。Json类似(每个环境中的相同文件):
{"realm": "helsinki", "bearer-only": true, "auth-server-url": "http://localhost:8180/auth", "ssl-required": "external", "resource": "backend"}
根据Wildfly-Swarm文档,应该可以在项目阶段配置keycloak。yml:
Swarm: key斗篷:secure-deployment: my-deployment: realm: keycloakrealmname bearer-only: true ssl-required:外部资源:keycloakresource auth-server-url: http://localhost:8180/auth
但是当我部署应用程序时,没有读取配置:
[cn .keycloak.adapter .undertow.]KeycloakServletExtension (ServerService Thread Pool——12)KeycloakServletException initialization 2018-03-08 06:29:03540 DEBUG [org.keycloak.adapters.undertow.] (ServerService Thread Pool——12)KeycloakServletExtension] (ServerService Thread Pool——12)using /WEB-INF/ key斗篷。json 2018-03-08 06:29:03542 WARN [org.keycloak.adapters.undertow. json 2018-03-08 06:29:03542 WARN [org.keycloak.adapters.undertow. jsonkeycloakservletex张力](ServerService线程池——12)没有适配器配置。key斗篷未配置,将拒绝所有请求。[cn .keycloak.adapter .undertow.] [cn .keycloak.adapter .]KeycloakServletExtension] (ServerService线程池——12)
在这似乎是唯一的解决办法是提供一个KeycloakConfigResolver。Wildfly-Swarm提供了一个解析器来读取项目stage .yml?
如何配置特定于环境的auth-server-urls?
或者它有一个不同的解决方案keycloak.json-Files。我更喜欢用project-stage。yml。
我曾经做过一个群项目,它通过project-defaults.yml专门配置keycloak:https://github.com/Ladicek/swarm-test-suite/tree/master/wildfly/keycloak
我觉得唯一不对的是
Swarm: key斗篷:secure-deployment: my-deployment:
您的my-deployment名称应该是实际的部署名称。和你这里一样:
群:部署:my.app.war:
如果这是您当前的配置,那么我将不得不进行猜测。