Keycloak和JBoss:编辑配置文件keycloak.json的位置

时间:2019-06-19 05:44:00

标签: java-ee jboss keycloak

我正在使用JBoss EAP 6.2,JavaEE 6.0和keycloak-eap6-adapter-dist 6.0.1进行Keycloak身份验证。

keycloak.json当前打包在已部署的战争存档中(位于WEB-INF下),因此每个客户都不能互换。

您知道如何将keycloak.json的路径更改为外部路径,以使其可以在每个安装/阶段(例如使用Docker)互换吗?


解决方案:感谢ravthiru,我们实现了一个自定义配置解析器,如下所示:

_, _ = contactCollection.InsertOne(context.TODO(), Contact{
    ID: "abcdefg",
    SurName: "Demo",
    PreName: "on stackoverflow",
})

并按如下所示将其注册到public class CustomKeycloakResolver implements KeycloakConfigResolver { private KeycloakDeployment deployment; @Override public KeycloakDeployment resolve(OIDCHttpFacade.Request request) { if (deployment != null) { return deployment; } InputStream is; try { is = new FileInputStream(System.getenv("KEYCLOAK_CONFIG_FILE")); } catch (FileNotFoundException e) { throw new RuntimeException(e); } deployment = KeycloakDeploymentBuilder.build(is); return deployment; } } 中:

WEB-INF/web.xml

现在,您可以在Docker-Container中直接使用环境变量指定路径。

1 个答案:

答案 0 :(得分:1)

一种选择是使用keycloak.config.resolver中的web.xml context-param动态解析密钥斗篷配置 您可以在密钥斗篷document和示例实现here

中找到有关此配置的更多信息。