当我们使用'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 Boot应用程序,以便从Spring Boot属性文件中读取keycloak属性并实现多租户。
最佳答案
如果将org.keycloak.representations.adapters.config.AdapterConfig注入组件,则可以访问在application.yaml(或application.properties)中保护的keycloak配置。
@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);
}
}