当我们使用'KeycloakSpringBootConfigResolver'从springboo属性文件而不是keycloak.json中读取keycloak配置时。
现在有指导方针通过覆盖http://www.keycloak.org/docs/2.3/securing_apps_guide/topics/oidc/java/multi-tenancy.html中指定的'KeycloakConfigResolver'来使用keycloak实现多租户应用程序。
此处定义的步骤只能与keycloak.json一起使用 我们如何使其适应Spring引导应用程序,以便从spring boot属性文件中读取keycloak属性并实现多租户。
答案 0 :(得分:0)
经过多次试验,弹簧靴的唯一可行选择是
挑战是为版本升级/错误修复的所有实例建立升级路径,但我想已经实施了多种策略(不是讨论的一部分)
答案 1 :(得分:0)
有关于此问题的故障单:https://issues.jboss.org/browse/KEYCLOAK-4139?_sscc=t 该票证的评论还讨论了干预所使用服务(Tomcat / Undertow / Jetty)的servlet设置的可能的解决方法,您可以尝试。
请注意,您在第一条评论中链接的文档已经过时了!
答案 2 :(得分:0)
如果将org.keycloak.representations.adapters.config.AdapterConfig注入组件,则可以访问在application.yaml(或application.properties)中保护的密钥斗篷配置。
@Component
public class MyKeycloakConfigResolver implements KeycloakConfigResolver {
private final AdapterConfig keycloakConfig;
public MyKeycloakConfigResolver(org.keycloak.representations.adapters.config.AdapterConfig keycloakConfig) {
this.keycloakConfig = keycloakConfig;
}
@Override
public KeycloakDeployment resolve(OIDCHttpFacade.Request request) {
// make a defensive copy before changing the config
AdapterConfig currentConfig = new AdapterConfig();
BeanUtils.copyProperties(keycloakConfig, currentConfig);
// changes stuff here for example compute the realm
return KeycloakDeploymentBuilder.build(currentConfig);
}
}