.
This commit is contained in:
parent
059f6cc980
commit
3e5ca28b21
4 changed files with 48 additions and 6 deletions
|
|
@ -13,6 +13,7 @@ import javax.servlet.ServletException;
|
||||||
public class BackendApiApplication extends SpringBootServletInitializer {
|
public class BackendApiApplication extends SpringBootServletInitializer {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
setKeycloakConfigFile();
|
||||||
SpringApplication app = new SpringApplication(BackendApiApplication.class);
|
SpringApplication app = new SpringApplication(BackendApiApplication.class);
|
||||||
app.run(args);
|
app.run(args);
|
||||||
}
|
}
|
||||||
|
|
@ -24,6 +25,7 @@ public class BackendApiApplication extends SpringBootServletInitializer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
|
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
|
||||||
|
setKeycloakConfigFile();
|
||||||
// springApplicationBuilder.initializers(DfaConfig.get().getLoggingInitializer());
|
// springApplicationBuilder.initializers(DfaConfig.get().getLoggingInitializer());
|
||||||
return builder.sources(BackendApiApplication.class);
|
return builder.sources(BackendApiApplication.class);
|
||||||
}
|
}
|
||||||
|
|
@ -33,4 +35,10 @@ public class BackendApiApplication extends SpringBootServletInitializer {
|
||||||
return super.run(application);
|
return super.run(application);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* чтобы переместить настройки keycloak в keycloak.json вместо application.properties
|
||||||
|
*/
|
||||||
|
private static void setKeycloakConfigFile() {
|
||||||
|
System.setProperty("keycloak.configurationFile", "classpath:keycloak.json");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
package ru.spcex.clearing.backendapi.security;
|
package ru.spcex.clearing.backendapi.security;
|
||||||
|
|
||||||
import org.keycloak.adapters.KeycloakConfigResolver;
|
import org.keycloak.adapters.KeycloakConfigResolver;
|
||||||
import org.keycloak.adapters.springboot.KeycloakSpringBootConfigResolver;
|
|
||||||
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.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,9 +30,14 @@ public class WebSecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
|
||||||
authManagerBuilder.authenticationProvider(keycloakAuthenticationProvider);
|
authManagerBuilder.authenticationProvider(keycloakAuthenticationProvider);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* чтобы переместить настройки keycloak в keycloak.json вместо application.properties
|
||||||
|
* если будут проблемы, реализовать {@link KeycloakConfigResolver} считывая JSON из keycloak.json
|
||||||
|
*/
|
||||||
|
@Primary
|
||||||
@Bean
|
@Bean
|
||||||
public KeycloakConfigResolver keycloakConfigResolver() {
|
public KeycloakConfigResolver keycloakConfigResolver() {
|
||||||
return new KeycloakSpringBootConfigResolver();
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,10 @@ spring.main.web-application-type=servlet
|
||||||
logging.level.root=warn
|
logging.level.root=warn
|
||||||
|
|
||||||
#keycloak
|
#keycloak
|
||||||
keycloak.auth-server-url=http://10.200.200.147:8080/
|
#keycloak.auth-server-url=http://10.200.200.147:8080/
|
||||||
keycloak.realm=master
|
#keycloak.realm=master
|
||||||
keycloak.resource=clearing
|
#keycloak.resource=clearing
|
||||||
keycloak.public-client=true
|
#keycloak.public-client=true
|
||||||
#keycloak.credentials.secret=WnOVCxcAmrUYc8IjiFHOuRif5Oesoyfr
|
#keycloak.credentials.secret=WnOVCxcAmrUYc8IjiFHOuRif5Oesoyfr
|
||||||
#keycloak.security-constraints[0].authRoles[0]=admin
|
#keycloak.security-constraints[0].authRoles[0]=admin
|
||||||
#keycloak.security-constraints[0].securityCollections[0].patterns[0]=/backend-api/users/*
|
#keycloak.security-constraints[0].securityCollections[0].patterns[0]=/backend-api/users/*
|
||||||
|
|
|
||||||
29
clearing-parent/backend-api/src/main/resources/keycloak.json
Normal file
29
clearing-parent/backend-api/src/main/resources/keycloak.json
Normal 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
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue