keycloak cycle dependencies fix
This commit is contained in:
parent
d5add01b2b
commit
63421f7bde
2 changed files with 34 additions and 13 deletions
|
|
@ -0,0 +1,34 @@
|
|||
package ru.spcex.clearing.backendapi.security;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.keycloak.adapters.KeycloakConfigResolver;
|
||||
import org.keycloak.adapters.KeycloakDeployment;
|
||||
import org.keycloak.adapters.KeycloakDeploymentBuilder;
|
||||
import org.keycloak.adapters.springsecurity.config.KeycloakSpringConfigResolverWrapper;
|
||||
import org.keycloak.representations.adapters.config.AdapterConfig;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.core.io.Resource;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@Configuration
|
||||
public class KeycloakJsonSettingConfig {
|
||||
private final Resource keycloakJson;
|
||||
|
||||
public KeycloakJsonSettingConfig() {
|
||||
this.keycloakJson = new ClassPathResource("keycloak.json");
|
||||
if (!this.keycloakJson.exists()) {
|
||||
throw new IllegalStateException("cannot find keycloak configuration");
|
||||
}
|
||||
}
|
||||
|
||||
@Bean
|
||||
public KeycloakConfigResolver keycloakConfigResolver() throws IOException {
|
||||
ObjectMapper json = new ObjectMapper();
|
||||
AdapterConfig adapterConfig = json.readValue(keycloakJson.getFile(), AdapterConfig.class);
|
||||
KeycloakDeployment build = KeycloakDeploymentBuilder.build(adapterConfig);
|
||||
return new KeycloakSpringConfigResolverWrapper(facade -> build);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +1,9 @@
|
|||
package ru.spcex.clearing.backendapi.security;
|
||||
|
||||
import org.keycloak.adapters.KeycloakConfigResolver;
|
||||
import org.keycloak.adapters.springsecurity.KeycloakConfiguration;
|
||||
import org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationProvider;
|
||||
import org.keycloak.adapters.springsecurity.config.KeycloakWebSecurityConfigurerAdapter;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
|
||||
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
|
|
@ -30,16 +27,6 @@ public class WebSecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
|
|||
authManagerBuilder.authenticationProvider(keycloakAuthenticationProvider);
|
||||
}
|
||||
|
||||
/**
|
||||
* чтобы переместить настройки keycloak в keycloak.json вместо application.properties
|
||||
* если будут проблемы, реализовать {@link KeycloakConfigResolver} считывая JSON из keycloak.json
|
||||
*/
|
||||
@Primary
|
||||
@Bean
|
||||
public KeycloakConfigResolver keycloakConfigResolver() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configure(HttpSecurity http) throws Exception {
|
||||
super.configure(http);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue