Пытаясь следовать статье https://sandor-nemeth.github.io/java/spring/2017/06/15/spring-boot-with-keycloak.html
Я настроил oauth с ключом в приложении весенней загрузки точно так же, как и тот факт, что я использую maven pom. xml вместо gradle.
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-spring-boot-2-starter</artifactId>
<version>4.0.0.Final</version>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-spring-boot-adapter</artifactId>
<version>9.0.0</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.keycloak.bom</groupId>
<artifactId>keycloak-adapter-bom</artifactId>
<version>9.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Часть Java такая же, как в статье:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
public class KeycloakSecurityConfigurer extends KeycloakWebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(final AuthenticationManagerBuilder auth) {
final SimpleAuthorityMapper mapper = new SimpleAuthorityMapper();
mapper.setConvertToUpperCase(true);
final KeycloakAuthenticationProvider provider = keycloakAuthenticationProvider();
provider.setGrantedAuthoritiesMapper(mapper);
auth.authenticationProvider(provider);
}
@Bean
public KeycloakSpringBootConfigResolver keycloakConfigResolver() {
return new KeycloakSpringBootConfigResolver();
}
@Override
protected SessionAuthenticationStrategy sessionAuthenticationStrategy() {
return new NullAuthenticatedSessionStrategy();
}
@Override
protected void configure(final HttpSecurity http) throws Exception {
super.configure(http);
http.authorizeRequests();
}
При попытке запустить приложение весенней загрузки
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar "${HOME}/app.war" "$@"
Я получаю BeanInCreationException:
rg.springframework.context.ApplicationContextException: Невозможно запустить веб-сервер; вложенным исключением является org.springframework.beans.factory.BeanCreationException: ошибка при создании bean-компонента с именем 'undertowServletWebServerFactory', определенным в ресурсе пути к классу [org / springframework / boot / autoconfigure / web / servlet / ServletWebServerFactoryConfizard] ; Вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем org.keycloak.adapters.springboot.KeycloakAutoConfiguration ': неудовлетворенная зависимость, выраженная с помощью метода setKeycloakSpringBootProperties, не удовлетворяющего параметру; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка создания бина с именем 'keycloakSecurityConfigurer': неудовлетворенная зависимость, выраженная через поле 'keycloakConfigResolver'; вложенное исключение: org.springframework.beans.factory.BeanCurrentlyInCreationException: ошибка создания бина с именем 'keycloakConfigResolver': запрашиваемый бин в данный момент находится в процессе создания: существует неразрешимая круговая ссылка? "," logger ":" org.springframework.boot.we .servlet.context.AnnotationConfigServletWebServerApplicationContext "," thread ":" main "," level ":" WARN "} {" time ":" 2020-03-10T12: 53: 22.667 + 00: 00 "," msg ":" Не удалось запустить приложение "," logger ":" org.springframework.boot.SpringApplication "," thread ":" main "," level ":" ERROR "," stack_trace ":" org.springframework.context.ApplicationContextException: не удалось запустить веб-сервер; вложенным исключением является org.springframework.beans.factory.BeanCreationException: ошибка при создании bean-компонента с именем 'undertowServletWebServerFactory', определенным в ресурсе пути к классу [org / springframework / boot / autoconfigure / web / servlet / ServletWebServerFactoryConfizard] ; Вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем org.keycloak.adapters.springboot.KeycloakAutoConfiguration ': неудовлетворенная зависимость, выраженная через метод setKeycloakSpringBootProperties * 1011 параметр * 1 параметр