backend-api config yaml example
This commit is contained in:
parent
a7a057c4d4
commit
35cfaf010d
9 changed files with 90 additions and 39 deletions
|
|
@ -48,6 +48,16 @@
|
|||
</dependencyManagement>
|
||||
<build>
|
||||
<finalName>backend-api</finalName>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<excludes>
|
||||
<exclude>application.yaml</exclude>
|
||||
<exclude>keycloak.json</exclude>
|
||||
</excludes>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
package ru.spcex.clearing.backendapi.config;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.PropertySource;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@PropertySource("file:${spring.config.location}/application.yaml")
|
||||
@ConfigurationProperties("backend-api")
|
||||
public class BackendApiSettings {
|
||||
public String getExampleSetting() {
|
||||
return exampleSetting;
|
||||
}
|
||||
|
||||
public void setExampleSetting(String exampleSetting) {
|
||||
this.exampleSetting = exampleSetting;
|
||||
}
|
||||
|
||||
private String exampleSetting;
|
||||
}
|
||||
|
|
@ -3,14 +3,16 @@ package ru.spcex.clearing.backendapi.controller;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import ru.spcex.clearing.backendapi.config.BackendApiSettings;
|
||||
|
||||
@Controller("/")
|
||||
public class SimpleController implements InitializingBean {
|
||||
public class DefaultController implements InitializingBean {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
@RequestMapping(method = RequestMethod.GET, path = "/anonymous/method1", produces = MediaType.TEXT_PLAIN_VALUE)
|
||||
|
|
@ -27,8 +29,12 @@ public class SimpleController implements InitializingBean {
|
|||
return "use post";
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private BackendApiSettings settings;
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
log.info("controller started");
|
||||
log.info("settings example {}", settings.getExampleSetting());
|
||||
}
|
||||
}
|
||||
|
|
@ -6,26 +6,21 @@ 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.beans.factory.annotation.Value;
|
||||
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");
|
||||
}
|
||||
}
|
||||
@Value("file:${spring.config.location}/keycloak.json")
|
||||
private Resource keycloakJson;
|
||||
|
||||
@Bean
|
||||
public KeycloakConfigResolver keycloakConfigResolver() throws IOException {
|
||||
if (!keycloakJson.isReadable()) throw new IllegalStateException("cannot read keycloak.json settings from spring.config.location");
|
||||
ObjectMapper json = new ObjectMapper();
|
||||
AdapterConfig adapterConfig = json.readValue(keycloakJson.getInputStream(), AdapterConfig.class);
|
||||
KeycloakDeployment build = KeycloakDeploymentBuilder.build(adapterConfig);
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
server.port = 8080
|
||||
server.servlet.context-path=/backend-api
|
||||
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.credentials.secret=WnOVCxcAmrUYc8IjiFHOuRif5Oesoyfr
|
||||
#keycloak.security-constraints[0].authRoles[0]=admin
|
||||
#keycloak.security-constraints[0].securityCollections[0].patterns[0]=/backend-api/users/*
|
||||
|
||||
|
||||
#keycloak.policy-enforcer-config.paths[0].path=/*
|
||||
#keycloak.policy-enforcer-config.paths[0].enforcementMode=ENFORCING
|
||||
#keycloak.policy-enforcer-config.paths[1].path=/backend-api/anonymous/method1
|
||||
#keycloak.policy-enforcer-config.paths[1].enforcementMode=DISABLED
|
||||
#keycloak.security-constraints[1].auth-roles[0]=*
|
||||
#keycloak.security-constraints[1].security-collections[0].patterns[0]=/backend-api/anonymous/method1
|
||||
|
||||
#keycloak.security-constraints[1].securityCollections[0].name=anonymous-methods
|
||||
#keycloak.security-constraints[1].securityCollections[0].patterns[0]=/backend-api/anonymous/method1
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
server:
|
||||
port: 8080
|
||||
servlet:
|
||||
context-path: /backend-api
|
||||
spring:
|
||||
main:
|
||||
web-application-type: servlet
|
||||
|
||||
backend-api:
|
||||
example-setting: test
|
||||
|
||||
|
||||
##keycloak
|
||||
##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/*
|
||||
#
|
||||
#
|
||||
##keycloak.policy-enforcer-config.paths[0].path=/*
|
||||
##keycloak.policy-enforcer-config.paths[0].enforcementMode=ENFORCING
|
||||
##keycloak.policy-enforcer-config.paths[1].path=/backend-api/anonymous/method1
|
||||
##keycloak.policy-enforcer-config.paths[1].enforcementMode=DISABLED
|
||||
##keycloak.security-constraints[1].auth-roles[0]=*
|
||||
##keycloak.security-constraints[1].security-collections[0].patterns[0]=/backend-api/anonymous/method1
|
||||
#
|
||||
##keycloak.security-constraints[1].securityCollections[0].name=anonymous-methods
|
||||
##keycloak.security-constraints[1].securityCollections[0].patterns[0]=/backend-api/anonymous/method1
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
"enable-cors" : true,
|
||||
"cors-max-age" : 1000,
|
||||
"cors-allowed-methods" : "POST, PUT, DELETE, GET",
|
||||
"cors-exposed-headers" : "WWW-Authenticate, My-custom-exposed-Header",
|
||||
"cors-exposed-headers" : "WWW-Authenticate",
|
||||
"bearer-only" : true,
|
||||
"enable-basic-auth" : false,
|
||||
"expose-token" : false,
|
||||
|
|
|
|||
|
|
@ -90,9 +90,20 @@
|
|||
<goal>copy</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<sourceFile>${folder_root_clearing_backend-api}/target/backend-api.jar
|
||||
</sourceFile>
|
||||
<destinationFile>${folder.clearing.distr.modules}/backend-api/backend-api.jar</destinationFile>
|
||||
<fileSets>
|
||||
<fileSet>
|
||||
<sourceFile>${folder_root_clearing_backend-api}/target/backend-api.jar</sourceFile>
|
||||
<destinationFile>${folder.clearing.distr.modules}/backend-api/backend-api.jar</destinationFile>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<sourceFile>${folder_root_clearing_backend-api}/src/main/resources/application.yaml</sourceFile>
|
||||
<destinationFile>${folder.clearing.distr.modules}/backend-api/application.yaml</destinationFile>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<sourceFile>${folder_root_clearing_backend-api}/src/main/resources/keycloak.json</sourceFile>
|
||||
<destinationFile>${folder.clearing.distr.modules}/backend-api/keycloak.json</destinationFile>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
FROM debian:stable-20220125-jdk17
|
||||
|
||||
ADD backend-api.jar /opt/clearing/bin/backend-api.jar
|
||||
ADD application.yaml /opt/clearing/bin/application.yaml
|
||||
ADD keycloak.json /opt/clearing/bin/keycloak.json
|
||||
USER root
|
||||
ENTRYPOINT java -jar /opt/clearing/bin/backend-api.jar
|
||||
ENTRYPOINT java -jar /opt/clearing/bin/backend-api.jar --spring.config.location=/opt/clearing/bin/
|
||||
Loading…
Add table
Reference in a new issue