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

Commit

Permalink
Made check endpoints from signing service visible, prepared next rele…
Browse files Browse the repository at this point in the history
…ase 4.12.2.
  • Loading branch information
haraldloesing committed Mar 23, 2023
1 parent a391f93 commit e69d298
Show file tree
Hide file tree
Showing 10 changed files with 135 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@ public class AuthorizationInterceptorConfig implements WebMvcConfigurer {
"/swagger-ui/**",
"/v3/api-docs/**",
"/api/v1/revocation-list",
"/api/v1/ping");
"/api/v1/ping",
"/api/v1/signing/ping",
"/api/v1/signing/health",
"/api/v1/signing/info");

private final AuthorizationInterceptor interceptor;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,9 @@ public interface SigningClient {

void cleanKeyIdentifierCache();

String callPing();

String callHealth();

String callInfo();
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,15 @@ public class DefaultSigningClient implements SigningClient {
@Value("${cc-signing-service.kid-url}")
private String kidUrl;

@Value("${cc-signing-service.ping-url}")
private String pingUrl;

@Value("${cc-signing-service.health-url}")
private String healthUrl;

@Value("${cc-signing-service.info-url}")
private String infoUrl;

public DefaultSigningClient(@Qualifier("signingServiceRestTemplate") RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
Expand Down Expand Up @@ -131,4 +140,39 @@ private String buildKidUrl(String url, Integer slotNumber, String kid) {
.pathSegment(slotNumber.toString(), kid)
.build().toString();
}

public String callPing() {
return this.sendGetRequestWithUrl(pingUrl);
}

public String callHealth() {
return this.sendGetRequestWithUrl(healthUrl);
}

public String callInfo() {
return this.sendGetRequestWithUrl(infoUrl);
}

private String sendGetRequestWithUrl(String url) {
long start = System.currentTimeMillis();
log.info("Call signing service with url {}", url);

try {
ResponseEntity<String> result = restTemplate.exchange(
url,
HttpMethod.GET,
new HttpEntity<>(new HttpHeaders()),
String.class
);
long end = System.currentTimeMillis();
log.info("Call of signing service url {} finished with result {} within {} ms.",
url,
result.getStatusCode(),
end - start);
return result.getBody();
} catch (RestClientException e) {
log.error("Connection with signing service {} could not be established.", url, e);
throw e;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public boolean verifySignature(VerifySignatureRequestDto verifySignatureRequestD
}

@SneakyThrows
public String getKeyIdentifier(Integer slotNumber, String certificateAlias){
public String getKeyIdentifier(Integer slotNumber, String certificateAlias) {
var outputStream = new ByteArrayOutputStream();
new HexEncoder().encode(UUID.randomUUID().toString().getBytes(), 0, 8, outputStream);
return outputStream.toString();
Expand All @@ -40,4 +40,19 @@ public String getKeyIdentifier(Integer slotNumber, String certificateAlias){
public void cleanKeyIdentifierCache() {
log.info("Mocking Cache Cleanup");
}

@Override
public String callPing() {
return "mocked answer of ping";
}

@Override
public String callHealth() {
return "mocked answer of health";
}

@Override
public String callInfo() {
return "mocked answer of info";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package ch.admin.bag.covidcertificate.web.controller;

import ch.admin.bag.covidcertificate.client.signing.SigningClient;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
* Controller to check signing service health using the standard actuator and ping endpoints.
*/
@RestController
@RequestMapping("/api/v1/signing")
@RequiredArgsConstructor
@Slf4j
public class SigningHealthController {

private final SigningClient signingClient;

@GetMapping("/ping")
public String checkPingOfSigningService() {
return this.signingClient.callPing();
}

@GetMapping("/health")
public String checkHealthOfSigningService() {
return this.signingClient.callHealth();
}

@GetMapping("/info")
public String checkInfoOfSigningService() {
return this.signingClient.callInfo();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,16 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception {
http.requestMatchers().
antMatchers("/actuator/**",
"/swagger-ui.html",
"/swagger-ui/**",
"/v3/api-docs/**",
"/api/v1/revocation-list",
"/api/v1/ping").
and().
authorizeRequests().anyRequest().permitAll();
"/swagger-ui.html",
"/swagger-ui/**",
"/v3/api-docs/**",
"/api/v1/revocation-list",
"/api/v1/ping",
"/api/v1/signing/ping",
"/api/v1/signing/health",
"/api/v1/signing/info").
and().
authorizeRequests().anyRequest().permitAll();
}

@Bean
Expand Down
3 changes: 3 additions & 0 deletions src/main/resources/application-abn.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,9 @@ cc-signing-service:
url: "https://covidcertificate-signing-a.bag.admin.ch/bag-vaccinecer-webapp/sign"
verify-url: "https://covidcertificate-signing-a.bag.admin.ch/bag-vaccinecer-webapp/sign/verify"
kid-url: "https://covidcertificate-signing-a.bag.admin.ch/bag-vaccinecer-webapp/sign/configuration/kid"
ping-url: "https://covidcertificate-signing-a.bag.admin.ch/bag-vaccinecer-webapp/ping"
health-url: "https://covidcertificate-signing-a.bag.admin.ch/bag-vaccinecer-webapp/actuator/health"
info-url: "https://covidcertificate-signing-a.bag.admin.ch/bag-vaccinecer-webapp/actuator/info"

cc-printing-service:
url: "https://cc-printing-service.abn.app.cfap02.atlantica.admin.ch/api/v1/print"
Expand Down
3 changes: 3 additions & 0 deletions src/main/resources/application-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ cc-signing-service:
url: "https://covidcertificate-signing-d.bag.admin.ch/bag-vaccinecer-webapp/sign"
verify-url: "https://covidcertificate-signing-d.bag.admin.ch/bag-vaccinecer-webapp/sign/verify"
kid-url: "https://covidcertificate-signing-d.bag.admin.ch/bag-vaccinecer-webapp/sign/configuration/kid"
ping-url: "https://covidcertificate-signing-d.bag.admin.ch/bag-vaccinecer-webapp/ping"
health-url: "https://covidcertificate-signing-d.bag.admin.ch/bag-vaccinecer-webapp/actuator/health"
info-url: "https://covidcertificate-signing-d.bag.admin.ch/bag-vaccinecer-webapp/actuator/info"

cc-printing-service:
url: "https://cc-printing-service.dev.app.cfap02.atlantica.admin.ch/api/v1/print"
Expand Down
18 changes: 12 additions & 6 deletions src/main/resources/application-local.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,13 +79,19 @@ cc-management-service:

cc-signing-service:
#When started as spring boot application
# url: "https://localhost:9090/sign"
# verify-url: "https://localhost:9090/sign/verify"
# kid-url: "https://localhost:9090/sign/configuration/kid"
url: "https://localhost:9090/sign"
verify-url: "https://localhost:9090/sign/verify"
kid-url: "https://localhost:9090/sign/configuration/kid"
ping-url: "https://localhost:9090/ping"
health-url: "https://localhost:9090/actuator/health"
info-url: "https://localhost:9090/actuator/info"
#When started with tomcat
url: "https://localhost:8443/cc-signing/sign"
verify-url: "https://localhost:8443/cc-signing/sign/verify"
kid-url: "https://localhost:8443/cc-signing/sign/configuration/kid"
# url: "https://localhost:8443/cc-signing/sign"
# verify-url: "https://localhost:8443/cc-signing/sign/verify"
# kid-url: "https://localhost:8443/cc-signing/sign/configuration/kid"
# ping-url: "https://localhost:8443/cc-signing/ping"
# health-url: "https://localhost:8443/cc-signing/actuator/health"
# info-url: "https://localhost:8443/cc-signing/actuator/info"

cc-printing-service:
url: "http://localhost:8124/api/v1/print"
Expand Down
3 changes: 3 additions & 0 deletions src/main/resources/application-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,9 @@ cc-signing-service:
url: "https://covidcertificate-signing.bag.admin.ch/bag-vaccinecer-webapp/sign"
verify-url: "https://covidcertificate-signing.bag.admin.ch/bag-vaccinecer-webapp/sign/verify"
kid-url: "https://covidcertificate-signing.bag.admin.ch/bag-vaccinecer-webapp/sign/configuration/kid"
ping-url: "https://covidcertificate-signing.bag.admin.ch/bag-vaccinecer-webapp/ping"
health-url: "https://covidcertificate-signing.bag.admin.ch/bag-vaccinecer-webapp/actuator/health"
info-url: "https://covidcertificate-signing.bag.admin.ch/bag-vaccinecer-webapp/actuator/info"

cc-printing-service:
url: "https://cc-printing-service.app.cfap02.atlantica.admin.ch/api/v1/print"
Expand Down

0 comments on commit e69d298

Please sign in to comment.