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;
|
package ru.spcex.clearing.backendapi.security;
|
||||||
|
|
||||||
import org.keycloak.adapters.KeycloakConfigResolver;
|
|
||||||
import org.keycloak.adapters.springsecurity.KeycloakConfiguration;
|
import org.keycloak.adapters.springsecurity.KeycloakConfiguration;
|
||||||
import org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationProvider;
|
import org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationProvider;
|
||||||
import org.keycloak.adapters.springsecurity.config.KeycloakWebSecurityConfigurerAdapter;
|
import org.keycloak.adapters.springsecurity.config.KeycloakWebSecurityConfigurerAdapter;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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.authentication.builders.AuthenticationManagerBuilder;
|
||||||
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
|
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
|
||||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||||
|
|
@ -30,16 +27,6 @@ public class WebSecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
|
||||||
authManagerBuilder.authenticationProvider(keycloakAuthenticationProvider);
|
authManagerBuilder.authenticationProvider(keycloakAuthenticationProvider);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* чтобы переместить настройки keycloak в keycloak.json вместо application.properties
|
|
||||||
* если будут проблемы, реализовать {@link KeycloakConfigResolver} считывая JSON из keycloak.json
|
|
||||||
*/
|
|
||||||
@Primary
|
|
||||||
@Bean
|
|
||||||
public KeycloakConfigResolver keycloakConfigResolver() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configure(HttpSecurity http) throws Exception {
|
protected void configure(HttpSecurity http) throws Exception {
|
||||||
super.configure(http);
|
super.configure(http);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue