Spring Boot 2.6.x seems to have introduced some change causing the previously-working integration with Keycloak to have a circular reference, preventing application start; it works and starts fine with the current 2.5.x release.
Explicitly, by changing nothing except the
The expected behavior, of course, is that the application starts just fine and is secured with Keycloak just as before.
The actual message is:
***************************
APPLICATION FAILED TO START
***************************
Description:
The dependencies of some of the beans in the application context form a cycle:
┌──->──┐
| keycloakSecurityConfig (field private org.keycloak.adapters.KeycloakConfigResolver org.keycloak.adapters.springsecurity.config.KeycloakWebSecurityConfigurerAdapter.keycloakConfigResolver)
└──<-──┘
Action:
Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.
Comment From: snicoll
@rajibhalder thanks for the report but the cycle was there before. Spring Boot 2.6.x actively prevents circular reference as described in the release notes, which also provides a way to disable this behavior.
Could you please report the circular reference to the Keycloack project? Do not hesitate to add a link here if you do so, so that we can follow along.