Skip to content

Commit 8c1963b

Browse files
committed
Merge branch 'RM-4798_x-expiry-time' into 'master'
RM-4798: Return `x-expiry-time` header to GET `/key-capsules/{transactionId}` See merge request cdoc2/cdoc2-capsule-server!62
2 parents f380831 + a7bc94d commit 8c1963b

File tree

11 files changed

+85
-59
lines changed

11 files changed

+85
-59
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Changelog
22

3+
## [1.4.2] x-expiry-time (2025-03-18)
4+
5+
### Bugfixes
6+
* Return `x-expiry-time` header to `GET` `/key-capsules/{transactionId}` as specified in
7+
[cdoc2-key-capsules 2.1.0 OAS ](https://github.com/open-eid/cdoc2-openapi/blob/04eac9013b919c405eee6e88f497897758af29a0/cdoc2-key-capsules-openapi.yaml#L38)
8+
9+
### Internal
10+
* Update dependency versions to latest (Spring Boot 3.4.3, BC 1.80 and others)
11+
312
## [1.4.1] Bug fixes (2024-09-19)
413

514
### Features

cdoc2-shared-crypto/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>ee.cyber.cdoc2</groupId>
88
<artifactId>cdoc2-shared-crypto</artifactId>
9-
<version>0.2.0</version>
9+
<version>0.2.1-SNAPSHOT</version>
1010
<description>CDOC2 common crypto functions shared between lib and server</description>
1111
<packaging>jar</packaging>
1212

@@ -16,8 +16,8 @@
1616
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1717

1818

19-
<bouncycastle.version>1.78.1</bouncycastle.version>
20-
<logback.version>1.5.7</logback.version>
19+
<bouncycastle.version>1.80</bouncycastle.version>
20+
<logback.version>1.5.16</logback.version>
2121
</properties>
2222

2323
<profiles>

get-server/pom.xml

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
<parent>
66
<groupId>org.springframework.boot</groupId>
77
<artifactId>spring-boot-starter-parent</artifactId>
8-
<version>3.3.3</version>
8+
<version>3.4.3</version>
99
<relativePath /> <!-- lookup parent from repository -->
1010
</parent>
1111

1212
<artifactId>cdoc2-get-server</artifactId>
1313
<groupId>ee.cyber.cdoc2</groupId>
14-
<version>1.4.1</version>
14+
<version>1.4.2-SNAPSHOT</version>
1515
<packaging>jar</packaging>
1616

1717
<name>cdoc2-get-server</name>
@@ -24,13 +24,11 @@
2424

2525
<tests>!(pkcs11 | slow)</tests>
2626

27-
<spring-boot.version>3.3.3</spring-boot.version>
28-
<org-testcontainers.version>1.19.8</org-testcontainers.version>
29-
30-
<micrometer.version>1.13.3</micrometer.version>
31-
32-
<!-- https://docs.spring.io/spring-boot/appendix/dependency-versions/coordinates.html-->
33-
<logback.version>1.5.7</logback.version>
27+
<spring-boot.version>3.4.3</spring-boot.version>
28+
<org-testcontainers.version>1.20.6</org-testcontainers.version>
29+
<micrometer.version>1.14.4</micrometer.version>
30+
<!-- https://docs.spring.io/spring-boot/appendix/dependency-versions/coordinates.html-->
31+
<logback.version>1.5.16</logback.version>
3432
</properties>
3533

3634
<profiles>
@@ -161,25 +159,25 @@
161159
<dependency>
162160
<groupId>ee.cyber.cdoc2</groupId>
163161
<artifactId>cdoc2-shared-crypto</artifactId>
164-
<version>0.2.0</version>
162+
<version>0.2.1-SNAPSHOT</version>
165163
</dependency>
166164

167165
<dependency>
168166
<groupId>ee.cyber.cdoc2</groupId>
169167
<artifactId>cdoc2-common-server</artifactId>
170-
<version>2.1.1</version>
168+
<version>2.2.0-SNAPSHOT</version>
171169
</dependency>
172170

173171
<dependency>
174172
<groupId>ee.cyber.cdoc2</groupId>
175173
<artifactId>cdoc2-server-db</artifactId>
176-
<version>2.2.0</version>
174+
<version>2.2.1-SNAPSHOT</version>
177175
</dependency>
178176

179177
<dependency>
180178
<groupId>ee.cyber.cdoc2</groupId>
181179
<artifactId>cdoc2-server-openapi</artifactId>
182-
<version>0.1.0</version>
180+
<version>0.1.1-SNAPSHOT</version>
183181
</dependency>
184182

185183
<dependency>
@@ -192,7 +190,7 @@
192190
<dependency>
193191
<groupId>ee.cyber.cdoc2</groupId>
194192
<artifactId>cdoc2-common-server</artifactId>
195-
<version>2.1.1</version>
193+
<version>2.2.0-SNAPSHOT</version>
196194
<type>test-jar</type>
197195
<scope>test</scope>
198196
</dependency>
@@ -252,19 +250,18 @@
252250
<dependency>
253251
<groupId>org.liquibase</groupId>
254252
<artifactId>liquibase-core</artifactId>
255-
<version>4.27.0</version>
253+
<version>4.29.2</version>
256254
<scope>test</scope>
257255
</dependency>
258256
<dependency>
259257
<groupId>org.apache.httpcomponents.client5</groupId>
260258
<artifactId>httpclient5</artifactId>
261-
<version>5.3.1</version>
259+
<version>5.4.2</version>
262260
<scope>test</scope>
263261
</dependency>
264262
<dependency>
265263
<groupId>ee.cyber.cdoc2</groupId>
266264
<artifactId>cdoc2-lib</artifactId>
267-
<!-- for successful pkcs11 tests version must be at least 2.0.1-SNAPSHOT-->
268265
<version>2.0.1</version>
269266
<type>test-jar</type>
270267
<scope>test</scope>

get-server/src/main/java/ee/cyber/cdoc2/server/api/GetKeyCapsuleApi.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package ee.cyber.cdoc2.server.api;
22

3+
import ee.cyber.cdoc2.server.Constants;
34
import ee.cyber.cdoc2.shared.crypto.ECKeys;
45
import ee.cyber.cdoc2.shared.crypto.RsaUtils;
56
import ee.cyber.cdoc2.shared.crypto.KeyAlgorithm;
@@ -16,6 +17,7 @@
1617
import java.security.interfaces.ECPublicKey;
1718
import java.security.interfaces.RSAPublicKey;
1819
import java.time.LocalDateTime;
20+
import java.time.format.DateTimeFormatter;
1921
import java.util.Arrays;
2022
import java.util.Optional;
2123
import javax.security.auth.x500.X500Principal;
@@ -62,7 +64,10 @@ public ResponseEntity<Capsule> getCapsuleByTransactionId(String transactionId) {
6264
var capsule = capsuleDbOpt.get();
6365
if (isRecipient(clientPubKey, capsule)) {
6466
log.info("Found capsule(transaction={}) for client certificate", transactionId);
65-
return ResponseEntity.ok(toDto(capsule));
67+
return ResponseEntity.ok()
68+
//return expiry-time as in RFC3339, example 2025-03-18T14:23:45.123Z
69+
.header(Constants.X_EXPIRY_TIME_HEADER, DateTimeFormatter.ISO_INSTANT.format(capsule.getExpiryTime()))
70+
.body(toDto(capsule));
6671
} else {
6772
log.info("Client certificate does not match capsule(transactionId={}) recipient", transactionId);
6873
return new ResponseEntity<>(HttpStatus.NOT_FOUND);

get-server/src/test/java/ee/cyber/cdoc2/server/GetKeyCapsuleApiTests.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.security.cert.X509Certificate;
3030
import java.security.interfaces.ECPublicKey;
3131
import java.security.interfaces.RSAPublicKey;
32+
import java.time.format.DateTimeFormatter;
3233
import java.util.Base64;
3334
import java.util.Collections;
3435
import java.util.Optional;
@@ -361,6 +362,12 @@ void shouldGetRsaCapsule() throws Exception {
361362
Capsule.class
362363
);
363364

365+
assertTrue(response.getHeaders().containsKey(Constants.X_EXPIRY_TIME_HEADER));
366+
367+
log.debug("expiry-time {}", response.getHeaders().get(Constants.X_EXPIRY_TIME_HEADER));
368+
//no exception means that x-expiry-time is formatted correctly
369+
DateTimeFormatter.ISO_INSTANT.parse(response.getHeaders().get(Constants.X_EXPIRY_TIME_HEADER).get(0));
370+
364371
assertNotNull(response);
365372
assertNotNull(response.getBody());
366373

pom.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<artifactId>cdoc2-server</artifactId>
66
<groupId>ee.cyber.cdoc2</groupId>
7-
<version>1.4.0</version>
7+
<version>1.4.1-SNAPSHOT</version>
88

99
<description>CDOC2 server pom</description>
1010

@@ -34,12 +34,12 @@
3434

3535
<!-- versions of dependencies has to correspond with spring boot version-->
3636
<!-- https://docs.spring.io/spring-boot/docs/current/reference/html/dependency-versions.html-->
37-
<junit-jupiter.version>5.10.3</junit-jupiter.version>
38-
<lombok.version>1.18.34</lombok.version>
39-
<logback-classic.version>1.5.7</logback-classic.version>
37+
<junit-jupiter.version>5.11.4</junit-jupiter.version>
38+
<lombok.version>1.18.36</lombok.version>
39+
<logback-classic.version>1.5.16</logback-classic.version>
4040
<exec-maven-plugin.version>3.4.10</exec-maven-plugin.version>
41-
<spring-boot.version>3.3.3</spring-boot.version>
42-
<spring.version>6.1.6</spring.version>
41+
<spring-boot.version>3.4.3</spring-boot.version>
42+
<spring.version>6.2.3</spring.version>
4343

4444
</properties>
4545

put-server/pom.xml

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
<parent>
66
<groupId>org.springframework.boot</groupId>
77
<artifactId>spring-boot-starter-parent</artifactId>
8-
<version>3.3.3</version>
8+
<version>3.4.3</version>
99
<relativePath /> <!-- lookup parent from repository -->
1010
</parent>
1111

1212
<artifactId>cdoc2-put-server</artifactId>
1313
<groupId>ee.cyber.cdoc2</groupId>
14-
<version>1.4.1</version>
14+
<version>1.4.2-SNAPSHOT</version>
1515
<packaging>jar</packaging>
1616

1717
<name>cdoc2-put-server</name>
@@ -24,13 +24,11 @@
2424

2525
<tests>!(pkcs11 | slow)</tests>
2626

27-
<spring-boot.version>3.3.3</spring-boot.version>
28-
<org-testcontainers.version>1.19.8</org-testcontainers.version>
29-
<micrometer.version>1.13.3</micrometer.version>
30-
31-
<!-- https://docs.spring.io/spring-boot/docs/current/reference/html/dependency-versions.html#appendix.dependency-versions.properties-->
32-
<!-- force usage of newer logback as SB 3.2.5 depends on vulnerable 1.4.14 -->
33-
<logback.version>1.5.7</logback.version>
27+
<spring-boot.version>3.4.3</spring-boot.version>
28+
<org-testcontainers.version>1.20.6</org-testcontainers.version>
29+
<micrometer.version>1.14.4</micrometer.version>
30+
<!-- https://docs.spring.io/spring-boot/appendix/dependency-versions/coordinates.html-->
31+
<logback.version>1.5.16</logback.version>
3432
</properties>
3533

3634
<profiles>
@@ -161,32 +159,32 @@
161159
<dependency>
162160
<groupId>ee.cyber.cdoc2</groupId>
163161
<artifactId>cdoc2-shared-crypto</artifactId>
164-
<version>0.2.0</version>
162+
<version>0.2.1-SNAPSHOT</version>
165163
</dependency>
166164

167165
<dependency>
168166
<groupId>ee.cyber.cdoc2</groupId>
169167
<artifactId>cdoc2-server-openapi</artifactId>
170-
<version>0.1.0</version>
168+
<version>0.1.1-SNAPSHOT</version>
171169
</dependency>
172170

173171

174172
<dependency>
175173
<groupId>ee.cyber.cdoc2</groupId>
176174
<artifactId>cdoc2-common-server</artifactId>
177-
<version>2.1.1</version>
175+
<version>2.2.0-SNAPSHOT</version>
178176
</dependency>
179177

180178
<dependency>
181179
<groupId>ee.cyber.cdoc2</groupId>
182180
<artifactId>cdoc2-server-db</artifactId>
183-
<version>2.2.0</version>
181+
<version>2.2.1-SNAPSHOT</version>
184182
</dependency>
185183

186184
<dependency>
187185
<groupId>ee.cyber.cdoc2</groupId>
188186
<artifactId>cdoc2-common-server</artifactId>
189-
<version>2.1.1</version>
187+
<version>2.2.0-SNAPSHOT</version>
190188
<type>test-jar</type>
191189
<scope>test</scope>
192190
</dependency>
@@ -263,13 +261,13 @@
263261
<dependency>
264262
<groupId>org.liquibase</groupId>
265263
<artifactId>liquibase-core</artifactId>
266-
<version>4.27.0</version>
264+
<version>4.29.2</version>
267265
<scope>test</scope>
268266
</dependency>
269267
<dependency>
270268
<groupId>org.apache.httpcomponents.client5</groupId>
271269
<artifactId>httpclient5</artifactId>
272-
<version>5.3.1</version>
270+
<version>5.4.2</version>
273271
<scope>test</scope>
274272
</dependency>
275273

server-common/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
<parent>
66
<groupId>ee.cyber.cdoc2</groupId>
77
<artifactId>cdoc2-server</artifactId>
8-
<version>1.4.0</version>
8+
<version>1.4.1-SNAPSHOT</version>
99
<relativePath>..</relativePath>
1010
</parent>
1111

1212
<artifactId>cdoc2-common-server</artifactId>
13-
<version>2.1.1</version>
13+
<version>2.2.0-SNAPSHOT</version>
1414
<packaging>jar</packaging>
1515

1616
<properties>
@@ -21,7 +21,7 @@
2121
<dependency>
2222
<groupId>ee.cyber.cdoc2</groupId>
2323
<artifactId>cdoc2-server-openapi</artifactId>
24-
<version>0.1.0</version>
24+
<version>0.1.1-SNAPSHOT</version>
2525
<scope>test</scope>
2626
</dependency>
2727

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package ee.cyber.cdoc2.server;
2+
3+
public final class Constants {
4+
private Constants() {
5+
}
6+
7+
// https://github.com/open-eid/cdoc2-openapi/blob/04eac9013b919c405eee6e88f497897758af29a0
8+
// /cdoc2-key-capsules-openapi.yaml#L38
9+
public static final String X_EXPIRY_TIME_HEADER = "x-expiry-time";
10+
}

server-db/pom.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@
55
<parent>
66
<groupId>ee.cyber.cdoc2</groupId>
77
<artifactId>cdoc2-server</artifactId>
8-
<version>1.4.0</version>
8+
<version>1.4.1-SNAPSHOT</version>
99
<relativePath>..</relativePath>
1010
</parent>
1111

1212
<artifactId>cdoc2-server-db</artifactId>
13-
<version>2.2.0</version>
13+
<version>2.2.1-SNAPSHOT</version>
1414
<packaging>jar</packaging>
1515

1616
<dependencies>
1717
<dependency>
1818
<groupId>ee.cyber.cdoc2</groupId>
1919
<artifactId>cdoc2-shared-crypto</artifactId>
20-
<version>0.2.0</version>
20+
<version>0.2.1-SNAPSHOT</version>
2121
</dependency>
2222

2323
<dependency>
@@ -29,7 +29,7 @@
2929
<dependency>
3030
<groupId>org.postgresql</groupId>
3131
<artifactId>postgresql</artifactId>
32-
<version>42.7.3</version>
32+
<version>42.7.5</version>
3333
</dependency>
3434

3535
<dependency>
@@ -50,7 +50,7 @@
5050
<plugin>
5151
<groupId>org.liquibase</groupId>
5252
<artifactId>liquibase-maven-plugin</artifactId>
53-
<version>4.27.0</version>
53+
<version>4.31.1</version>
5454
<configuration>
5555
<propertyFile>liquibase.properties</propertyFile>
5656
<changeLogFile>db/changelog/db.changelog-master.yaml</changeLogFile>
@@ -59,7 +59,7 @@
5959
<dependency>
6060
<groupId>org.postgresql</groupId>
6161
<artifactId>postgresql</artifactId>
62-
<version>42.7.3</version>
62+
<version>42.7.5</version>
6363
</dependency>
6464
</dependencies>
6565
</plugin>

0 commit comments

Comments
 (0)