This commit is contained in:
ialbert 2022-07-29 14:44:18 +03:00
parent 059f6cc980
commit 3e5ca28b21
4 changed files with 48 additions and 6 deletions

View file

@ -13,6 +13,7 @@ import javax.servlet.ServletException;
public class BackendApiApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
setKeycloakConfigFile();
SpringApplication app = new SpringApplication(BackendApiApplication.class);
app.run(args);
}
@ -24,6 +25,7 @@ public class BackendApiApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
setKeycloakConfigFile();
// springApplicationBuilder.initializers(DfaConfig.get().getLoggingInitializer());
return builder.sources(BackendApiApplication.class);
}
@ -33,4 +35,10 @@ public class BackendApiApplication extends SpringBootServletInitializer {
return super.run(application);
}
/**
* чтобы переместить настройки keycloak в keycloak.json вместо application.properties
*/
private static void setKeycloakConfigFile() {
System.setProperty("keycloak.configurationFile", "classpath:keycloak.json");
}
}

View file

@ -1,12 +1,12 @@
package ru.spcex.clearing.backendapi.security;
import org.keycloak.adapters.KeycloakConfigResolver;
import org.keycloak.adapters.springboot.KeycloakSpringBootConfigResolver;
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,9 +30,14 @@ public class WebSecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
authManagerBuilder.authenticationProvider(keycloakAuthenticationProvider);
}
/**
* чтобы переместить настройки keycloak в keycloak.json вместо application.properties
* если будут проблемы, реализовать {@link KeycloakConfigResolver} считывая JSON из keycloak.json
*/
@Primary
@Bean
public KeycloakConfigResolver keycloakConfigResolver() {
return new KeycloakSpringBootConfigResolver();
return null;
}
@Override

View file

@ -4,10 +4,10 @@ spring.main.web-application-type=servlet
logging.level.root=warn
#keycloak
keycloak.auth-server-url=http://10.200.200.147:8080/
keycloak.realm=master
keycloak.resource=clearing
keycloak.public-client=true
#keycloak.auth-server-url=http://10.200.200.147:8080/
#keycloak.realm=master
#keycloak.resource=clearing
#keycloak.public-client=true
#keycloak.credentials.secret=WnOVCxcAmrUYc8IjiFHOuRif5Oesoyfr
#keycloak.security-constraints[0].authRoles[0]=admin
#keycloak.security-constraints[0].securityCollections[0].patterns[0]=/backend-api/users/*

View file

@ -0,0 +1,29 @@
{
"realm" : "master",
"resource" : "clearing",
"auth-server-url" : "http://10.200.200.147:8080",
"ssl-required" : "none",
"use-resource-role-mappings" : false,
"enable-cors" : true,
"cors-max-age" : 1000,
"cors-allowed-methods" : "POST, PUT, DELETE, GET",
"cors-exposed-headers" : "WWW-Authenticate, My-custom-exposed-Header",
"bearer-only" : false,
"enable-basic-auth" : false,
"expose-token" : false,
"verify-token-audience" : true,
"credentials" : {
"secret" : "WnOVCxcAmrUYc8IjiFHOuRif5Oesoyfr"
},
"connection-pool-size" : 20,
"socket-timeout-millis" : 5000,
"connection-timeout-millis" : 6000,
"connection-ttl-millis" : 500,
"disable-trust-manager" : false,
"allow-any-hostname" : false,
"token-minimum-time-to-live" : 0,
"min-time-between-jwks-requests" : 10,
"public-key-cache-ttl" : 86400
}