diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/BackendApiApplication.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/BackendApiApplication.java index 8acfda2d8..2264ef140 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/BackendApiApplication.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/BackendApiApplication.java @@ -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"); + } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/WebSecurityConfig.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/WebSecurityConfig.java index f393459e4..6d7f19ddc 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/WebSecurityConfig.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/WebSecurityConfig.java @@ -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 diff --git a/clearing-parent/backend-api/src/main/resources/application.properties b/clearing-parent/backend-api/src/main/resources/application.properties index 549ccb8db..b16789592 100644 --- a/clearing-parent/backend-api/src/main/resources/application.properties +++ b/clearing-parent/backend-api/src/main/resources/application.properties @@ -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/* diff --git a/clearing-parent/backend-api/src/main/resources/keycloak.json b/clearing-parent/backend-api/src/main/resources/keycloak.json new file mode 100644 index 000000000..b298527cc --- /dev/null +++ b/clearing-parent/backend-api/src/main/resources/keycloak.json @@ -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 +} \ No newline at end of file