pom. xml
зависимости для keycloak
`<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-spring-boot-starter</artifactId>
</dependency
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-spring-security-adapter</artifactId>
<version>9.0.0</version>
</dependency>
<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>`
конфигурация в securityconfig. java файл
@KeycloakConfiguration
@EnableConfigurationProperties(KeycloakSpringBootProperties.class)
class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
/**
* Registers the KeycloakAuthenticationProvider with the authentication manager.
*/
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
KeycloakAuthenticationProvider keycloakAuthenticationProvider = keycloakAuthenticationProvider();
auth.authenticationProvider(keycloakAuthenticationProvider);
}
/**
* Provide a session authentication strategy bean which should be of type
* RegisterSessionAuthenticationStrategy for public or confidential applications
* and NullAuthenticatedSessionStrategy for bearer-only applications.
*/
@Bean
@Override
protected SessionAuthenticationStrategy sessionAuthenticationStrategy() {
return new RegisterSessionAuthenticationStrategy(new SessionRegistryImpl());
}
/**
* Use properties in application.properties instead of keycloak.json
*/
@Bean
@Primary
public KeycloakConfigResolver keycloakConfigResolver(KeycloakSpringBootProperties properties) {
return new CustomKeycloakSpringBootConfigResolver(properties);
}
/**
* Secure appropriate endpoints
*/
@Override
protected void configure(HttpSecurity http) throws Exception {
super.configure(http);
http.authorizeRequests()
.antMatchers("/**").authenticated()
.anyRequest().authenticated();
}
}
код в файле CustomKeycloakSpringBootConfigResolve
@Configuration
public class CustomKeycloakSpringBootConfigResolver extends KeycloakSpringBootConfigResolver {
private final KeycloakDeployment keycloakDeployment;
public CustomKeycloakSpringBootConfigResolver(KeycloakSpringBootProperties properties) {
keycloakDeployment = KeycloakDeploymentBuilder.build(properties);
}
@Override
public KeycloakDeployment resolve(HttpFacade.Request facade) {
return keycloakDeployment;
}
}
Я также написал необходимую конфигурацию в файле application.propertirs
, но возникла следующая ошибка ", вызванная: java .io.FileNotFoundException: ресурс пути к классу [org / keycloak / adapters /springboot/KeycloakSpringBootConfigResolver.class] не может быть открыт, потому что он не существует "
, но требуемый класс существует в соответствующем фляге. У кого-нибудь есть решение этой проблемы?