我正在使用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中直接使用环境变量指定路径。