Solución:
No tengo una solución en este momento, pero puedo ver que exactamente el mismo problema se registró en Keycloak Jira hace un par de meses: https://issues.jboss.org/browse/KEYCLOAK-10595. El problema parece deberse al código entregado con este PR: https://github.com/keycloak/keycloak/pull/6075.
El autor del PR describió el problema de esta manera: “El único problema restante es que el resolutor generalmente está contenido en la configuración utilizando KeycloakAutoConfiguration (en mi ejemplo, SharedConfiguration), por lo que está intentando acceder al bean mientras la configuración es aún se está creando. Esto se puede resolver moviendo el bean resolutor a otra configuración que debe cargarse antes de KeycloakAutoConfiguration “. (fuente: https://issues.jboss.org/browse/KEYCLOAK-10334?focusedCommentId=13738518&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-13738518)
ACTUALIZAR (ANTIGUO)
Sobre el problema de Keycloak Jira (https://issues.jboss.org/browse/KEYCLOAK-11282), se ha sugerido una solución temporal.
@Configuration
public class MyKeycloakSpringBootConfigResolver extends KeycloakSpringBootConfigResolver {
private final KeycloakDeployment keycloakDeployment;
public MyKeycloakSpringBootConfigResolver(KeycloakSpringBootProperties properties) {
keycloakDeployment = KeycloakDeploymentBuilder.build(properties);
}
@Override
public KeycloakDeployment resolve(HttpFacade.Request facade) {
return keycloakDeployment;
}
}
ÚLTIMA ACTUALIZACIÓN
Una forma más sencilla de resolver el problema es declarar un KeycloakSpringBootConfigResolver
en una clase de configuración separada. Esta opción solucionará problemas con Spring Boot y Spring Security.
@Configuration
public class KeycloakConfig {
@Bean
public KeycloakSpringBootConfigResolver keycloakConfigResolver() {
return new KeycloakSpringBootConfigResolver();
}
}