我尝试使用 keycloak 保护我的 Java Servlet 应用程序。一切正常,但我不喜欢我的“keycloak.json”文件位于我的版本中。原因是,如果 keycloak 定义在我的战争中,那么我需要不同的安装不同的构建过程或不同安装的相同客户端凭据。
我现在的想法是将“keycloak.json”放在我的 WEB-INF 之外。这可能吗?也欢迎解决此问题的其他想法。
如果你检查KeycloakOIDCFilter你会看到有三个额外的参数。
我们正在使用文件参数并且像魅力一样工作。
上面提到的 Servlet-Filter 不是必须的。
设置一个上下文参数就足够了,就像@OkieOth 在他的评论中所说的那样。
例如设置这样的参数
<Parameter name="keycloak.config.file" value="MY-PATH/keycloak.json" override="false"/>
在您的上下文中(在为 keycloak 配置的 Valve 旁边)或 Web 应用程序部署描述符(/WEB-INF/web.xml)中的“上下文参数”:
<context-param>
<param-name>keycloak.config.file</param-name>
<param-value>MY-PATH/keycloak.json</param-value>
</context-param>
有关上下文参数的更多详细信息,请参阅“上下文参数”部分中的上下文容器。