Skip to content
This repository was archived by the owner on Sep 15, 2023. It is now read-only.

Commit f4deed6

Browse files
authored
Merge pull request #6 from admin-ch/feature/sleuth-logging
Added Sleuth logging
2 parents 861913d + a79c973 commit f4deed6

File tree

10 files changed

+116
-115
lines changed

10 files changed

+116
-115
lines changed

.gitignore

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
1-
2-
ch-covidcertificate-backend-verifier/ch-covidcertificate-backend-verifier-ws/ch-covidcertificate-verifier-ws.log
3-
4-
ch-covidcertificate-backend-verifier/ch-covidcertificate-backend-verifier-ws/.sts4-cache/classpath-data.json
5-
6-
ch-covidcertificate-backend-verifier/ch-covidcertificate-backend-verifier-sync/.sts4-cache/classpath-data.json
7-
8-
ch-covidcertificate-backend-verifier/ch-covidcertificate-backend-verifier-model/.sts4-cache/classpath-data.json
9-
10-
ch-covidcertificate-backend-verifier/ch-covidcertificate-backend-verifier-data/.sts4-cache/classpath-data.json
1+
**/*.log
2+
**/*.log.*
3+
**/.project
4+
**/.classpath
5+
**/classpath-data.json
6+
**/.settings

ch-covidcertificate-backend-verification-check/ch-covidcertificate-backend-verification-check-ws/src/main/java/ch/admin/bag/covidcertificate/backend/verification/check/ws/VerificationCheckWS.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
1818

1919
@Configuration
20-
@ComponentScan(
21-
basePackages = {"ch.admin.bag.covidcertificate.backend.verification.check.ws.config"})
20+
@ComponentScan(basePackages = {"ch.admin.bag.covidcertificate.backend.verification.check.ws"})
2221
@EnableAutoConfiguration
2322
@EnableWebMvc
2423
public class VerificationCheckWS {

ch-covidcertificate-backend-verification-check/ch-covidcertificate-backend-verification-check-ws/src/main/java/ch/admin/bag/covidcertificate/backend/verification/check/ws/config/WsBaseConfig.java

Lines changed: 14 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@
1010

1111
package ch.admin.bag.covidcertificate.backend.verification.check.ws.config;
1212

13-
import ch.admin.bag.covidcertificate.backend.verification.check.ws.controller.VerificationController;
1413
import ch.admin.bag.covidcertificate.backend.verification.check.ws.jackson.CustomInstantSerializer;
15-
import ch.admin.bag.covidcertificate.backend.verification.check.ws.verification.VerificationService;
1614
import com.fasterxml.jackson.databind.DeserializationFeature;
1715
import com.fasterxml.jackson.databind.ObjectMapper;
1816
import com.fasterxml.jackson.databind.SerializationFeature;
@@ -21,42 +19,16 @@
2119
import com.fasterxml.jackson.module.kotlin.KotlinModule;
2220
import java.time.Instant;
2321
import java.util.List;
24-
import org.springframework.beans.factory.annotation.Value;
2522
import org.springframework.context.annotation.Bean;
2623
import org.springframework.context.annotation.Configuration;
2724
import org.springframework.http.converter.HttpMessageConverter;
2825
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
26+
import org.springframework.web.client.RestTemplate;
2927
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
3028

3129
@Configuration
3230
public abstract class WsBaseConfig implements WebMvcConfigurer {
3331

34-
@Value("${verifier.baseurl}")
35-
private String verifierBaseUrl;
36-
37-
@Value("${verifier.dsc.endpoint:/trust/v2/keys/updates}")
38-
private String dscEndpoint;
39-
40-
@Value("${verifier.revocation.endpoint:/trust/v1/revocationList}")
41-
private String revocationEndpoint;
42-
43-
@Value("${verifier.rules.endpoint:/trust/v1/verificationRules}")
44-
private String rulesEndpoint;
45-
46-
@Value("${verifier.api-key:}")
47-
private String apiKey;
48-
49-
@Bean
50-
public VerificationController verificationController(VerificationService verificationService) {
51-
return new VerificationController(verificationService);
52-
}
53-
54-
@Bean
55-
public VerificationService verificationService() {
56-
return new VerificationService(
57-
verifierBaseUrl, dscEndpoint, revocationEndpoint, rulesEndpoint, apiKey);
58-
}
59-
6032
@Override
6133
public void configureMessageConverters(final List<HttpMessageConverter<?>> converters) {
6234
converters.add(new MappingJackson2HttpMessageConverter(objectMapper()));
@@ -65,16 +37,19 @@ public void configureMessageConverters(final List<HttpMessageConverter<?>> conve
6537

6638
@Bean
6739
public ObjectMapper objectMapper() {
68-
SimpleModule serialization = new SimpleModule();
40+
var serialization = new SimpleModule();
6941
serialization.addSerializer(Instant.class, new CustomInstantSerializer());
70-
ObjectMapper objectMapper =
71-
new ObjectMapper()
72-
// Needed to ignore `subjectPublicKeyInfo` field in /updates response
73-
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
74-
.registerModule(new KotlinModule())
75-
.registerModule(new JavaTimeModule())
76-
.registerModule(serialization)
77-
.disable(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS);
78-
return objectMapper;
42+
return new ObjectMapper()
43+
// Needed to ignore `subjectPublicKeyInfo` field in /updates response
44+
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
45+
.registerModule(new KotlinModule())
46+
.registerModule(new JavaTimeModule())
47+
.registerModule(serialization)
48+
.disable(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS);
49+
}
50+
51+
@Bean
52+
public RestTemplate restTemplate() {
53+
return new RestTemplate();
7954
}
8055
}

ch-covidcertificate-backend-verification-check/ch-covidcertificate-backend-verification-check-ws/src/main/java/ch/admin/bag/covidcertificate/backend/verification/check/ws/controller/VerificationController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@
2323
import org.slf4j.Logger;
2424
import org.slf4j.LoggerFactory;
2525
import org.springframework.http.ResponseEntity;
26-
import org.springframework.stereotype.Controller;
2726
import org.springframework.web.bind.annotation.CrossOrigin;
2827
import org.springframework.web.bind.annotation.GetMapping;
2928
import org.springframework.web.bind.annotation.PostMapping;
3029
import org.springframework.web.bind.annotation.RequestBody;
3130
import org.springframework.web.bind.annotation.RequestMapping;
3231
import org.springframework.web.bind.annotation.ResponseBody;
32+
import org.springframework.web.bind.annotation.RestController;
3333

34-
@Controller
34+
@RestController
3535
@RequestMapping("v1")
3636
public class VerificationController {
3737

ch-covidcertificate-backend-verification-check/ch-covidcertificate-backend-verification-check-ws/src/main/java/ch/admin/bag/covidcertificate/backend/verification/check/ws/verification/VerificationService.java

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,19 @@
3030
import java.util.List;
3131
import java.util.Map;
3232
import java.util.stream.Collectors;
33+
import javax.annotation.PostConstruct;
3334
import org.slf4j.Logger;
3435
import org.slf4j.LoggerFactory;
36+
import org.springframework.beans.factory.annotation.Value;
3537
import org.springframework.http.HttpHeaders;
3638
import org.springframework.http.MediaType;
3739
import org.springframework.http.RequestEntity;
3840
import org.springframework.http.ResponseEntity;
41+
import org.springframework.stereotype.Service;
3942
import org.springframework.web.client.RestTemplate;
4043
import org.springframework.web.util.UriComponentsBuilder;
4144

45+
@Service
4246
public class VerificationService {
4347

4448
private static final Logger logger = LoggerFactory.getLogger(VerificationService.class);
@@ -48,27 +52,32 @@ public class VerificationService {
4852
private static final String SINCE_PARAM = "since";
4953
private static final String CERT_FORMAT_PARAM = "certFormat";
5054
private static final String UP_TO_PARAM = "upTo";
51-
52-
private final String verifierBaseUrl;
53-
private final String dscEndpoint;
54-
private final String revocationEndpoint;
55-
private final String rulesEndpoint;
56-
private final String apiKey;
57-
private final RestTemplate rt = new RestTemplate();
5855
private final TrustListConfig trustListConfig = new TrustListConfig();
59-
private CertificateVerifier certificateVerifier = new CertificateVerifier();
60-
61-
public VerificationService(
62-
String verifierBaseUrl,
63-
String dscEndpoint,
64-
String revocationEndpoint,
65-
String rulesEndpoint,
66-
String apiKey) {
67-
this.verifierBaseUrl = verifierBaseUrl;
68-
this.dscEndpoint = dscEndpoint;
69-
this.revocationEndpoint = revocationEndpoint;
70-
this.rulesEndpoint = rulesEndpoint;
71-
this.apiKey = apiKey;
56+
private final CertificateVerifier certificateVerifier = new CertificateVerifier();
57+
58+
private final RestTemplate rt;
59+
60+
@Value("${verifier.baseurl}")
61+
private String verifierBaseUrl;
62+
63+
@Value("${verifier.dsc.endpoint:/trust/v2/keys/updates}")
64+
private String dscEndpoint;
65+
66+
@Value("${verifier.revocation.endpoint:/trust/v1/revocationList}")
67+
private String revocationEndpoint;
68+
69+
@Value("${verifier.rules.endpoint:/trust/v1/verificationRules}")
70+
private String rulesEndpoint;
71+
72+
@Value("${verifier.api-key:}")
73+
private String apiKey;
74+
75+
public VerificationService(RestTemplate rt) {
76+
this.rt = rt;
77+
}
78+
79+
@PostConstruct
80+
public void init() {
7281
updateTrustListConfig();
7382
}
7483

ch-covidcertificate-backend-verification-check/ch-covidcertificate-backend-verification-check-ws/src/main/resources/application.properties

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
#
88
# SPDX-License-Identifier: MPL-2.0
99
#
10-
spring.profiles.active=prod
10+
spring.profiles.active=prod,local
1111
management.endpoints.enabled-by-default=false
12-
server.error.whitelabel.enabled=true
12+
server.error.whitelabel.enabled=true
13+
14+
spring.application.name=covidCertificate-verification-check-service
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
4+
5+
<property resource="application.properties"/>
6+
<springProperty scope="context" name="springAppName" source="spring.application.name"/>
7+
<property name="LOG_FILE" value="${springAppName}"/>
8+
9+
<!-- You can override this to have a custom pattern -->
10+
<!-- Make sure not to remove LOG_LEVEL_PATTERN, as it's needed by Sleuth -->
11+
<property name="CONSOLE_LOG_PATTERN"
12+
value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
13+
14+
15+
<!-- Appender to log to console -->
16+
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
17+
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
18+
<!-- Minimum logging level to be presented in the console logs-->
19+
<level>DEBUG</level>
20+
</filter>
21+
<encoder>
22+
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
23+
<charset>utf8</charset>
24+
</encoder>
25+
</appender>
26+
27+
<!-- Appender to log to file -->
28+
<appender name="flatfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
29+
<file>${LOG_FILE}.log</file>
30+
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
31+
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
32+
<maxHistory>7</maxHistory>
33+
</rollingPolicy>
34+
<encoder>
35+
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
36+
<charset>utf8</charset>
37+
</encoder>
38+
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
39+
<MaxFileSize>512KB</MaxFileSize>
40+
</triggeringPolicy>
41+
</appender>
42+
43+
<root level="INFO">
44+
<appender-ref ref="console"/>
45+
<appender-ref ref="flatfile"/>
46+
</root>
47+
48+
</configuration>

ch-covidcertificate-backend-verification-check/ch-covidcertificate-backend-verification-check-ws/src/main/resources/logback.xml

Lines changed: 0 additions & 40 deletions
This file was deleted.
Binary file not shown.

ch-covidcertificate-backend-verification-check/pom.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
2525

2626
<spring-boot-version>2.5.3</spring-boot-version>
27+
<spring-cloud-sleuth-version>3.0.3</spring-cloud-sleuth-version>
2728
<jackson-version>2.11.1</jackson-version>
2829
<spring-cloud-connectors-version>2.0.7.RELEASE</spring-cloud-connectors-version>
2930

@@ -78,6 +79,10 @@
7879
<groupId>org.springframework.boot</groupId>
7980
<artifactId>spring-boot-starter-logging</artifactId>
8081
</dependency>
82+
<dependency>
83+
<groupId>org.springframework.cloud</groupId>
84+
<artifactId>spring-cloud-starter-sleuth</artifactId>
85+
</dependency>
8186
<dependency>
8287
<groupId>org.slf4j</groupId>
8388
<artifactId>jcl-over-slf4j</artifactId>
@@ -144,6 +149,13 @@
144149
<version>${spring-boot-version}</version>
145150
<scope>import</scope>
146151
</dependency>
152+
<dependency>
153+
<groupId>org.springframework.cloud</groupId>
154+
<artifactId>spring-cloud-sleuth</artifactId>
155+
<version>${spring-cloud-sleuth-version}</version>
156+
<type>pom</type>
157+
<scope>import</scope>
158+
</dependency>
147159
</dependencies>
148160
</dependencyManagement>
149161

0 commit comments

Comments
 (0)