23 Commits

Author SHA1 Message Date
1803728256 prepare release v1.5.2
All checks were successful
CI / build-with-it (11, 1.2.0) (push) Successful in 56s
CI / build-with-it (11, 1.20.0) (push) Successful in 1m11s
CI / build-with-it (17, 1.2.0) (push) Successful in 58s
CI / build-with-it (17, 1.20.0) (push) Successful in 1m10s
CI / build-with-it (21, 1.2.0) (push) Successful in 54s
CI / build-with-it (true, 21, 1.20.0) (push) Successful in 1m2s
2025-07-16 18:22:35 +02:00
9e7d8f50d3 build: update maven to 3.9.11
All checks were successful
CI / build-with-it (11, 1.2.0) (push) Successful in 1m1s
CI / build-with-it (11, 1.20.0) (push) Successful in 1m12s
CI / build-with-it (17, 1.2.0) (push) Successful in 56s
CI / build-with-it (17, 1.20.0) (push) Successful in 1m8s
CI / build-with-it (21, 1.2.0) (push) Successful in 57s
CI / build-with-it (true, 21, 1.20.0) (push) Successful in 1m9s
2025-07-16 18:09:25 +02:00
08886a0c7c build: update maven-gpg-plugin to 3.2.8 2025-07-16 18:08:19 +02:00
eebe3f0ef6 build: update maven-enforcer-plugin to 3.6.1 2025-07-16 18:08:05 +02:00
5b9f1392d3 build: restore argLine to fix code coverage
All checks were successful
CI / build-with-it (11, 1.2.0) (push) Successful in 49s
CI / build-with-it (11, 1.20.0) (push) Successful in 1m6s
CI / build-with-it (17, 1.2.0) (push) Successful in 44s
CI / build-with-it (true, 21, 1.20.0) (push) Successful in 1m26s
CI / build-with-it (17, 1.20.0) (push) Successful in 1m8s
CI / build-with-it (21, 1.2.0) (push) Successful in 51s
Partially reverts da4fffc823
2025-07-15 08:41:46 +02:00
da4fffc823 build remove unused test module access flags
All checks were successful
CI / build-with-it (11, 1.2.0) (push) Successful in 40s
CI / build-with-it (11, 1.20.0) (push) Successful in 51s
CI / build-with-it (17, 1.2.0) (push) Successful in 39s
CI / build-with-it (17, 1.20.0) (push) Successful in 50s
CI / build-with-it (21, 1.2.0) (push) Successful in 41s
CI / build-with-it (true, 21, 1.20.0) (push) Successful in 48s
Remove redundant module opens directives and argLine property
inheritance, keeping only essential module access config for tests.
2025-07-13 18:38:47 +02:00
91276e1615 test: autoformat test code
All checks were successful
CI / build (11) (push) Successful in 34s
CI / build (17) (push) Successful in 32s
CI / build (true, 21) (push) Successful in 28s
CI / build-with-it (11, 1.2.0) (push) Successful in 50s
CI / build-with-it (11, 1.20.0) (push) Successful in 1m7s
CI / build-with-it (17, 1.2.0) (push) Successful in 45s
CI / build-with-it (17, 1.20.0) (push) Successful in 1m7s
CI / build-with-it (21, 1.2.0) (push) Successful in 48s
CI / build-with-it (true, 21, 1.20.0) (push) Successful in 59s
2025-07-13 18:19:56 +02:00
6d2313289c test: use Files.writeString() for config creation 2025-07-13 18:19:45 +02:00
bcbb3a0926 test: use assertDoesNotThrow instead of try-catch-fail for createFull() 2025-07-13 18:17:48 +02:00
f03c05bd5b fix: use Long for numeric TTL fields (#103) (#104)
All checks were successful
CI / build-with-it (11, 1.2.0) (push) Successful in 55s
CI / build-with-it (11, 1.20.0) (push) Successful in 1m8s
CI / build-with-it (17, 1.2.0) (push) Successful in 43s
CI / build-with-it (17, 1.20.0) (push) Successful in 1m3s
CI / build-with-it (21, 1.2.0) (push) Successful in 47s
CI / build-with-it (true, 21, 1.20.0) (push) Successful in 53s
Mapping these fields as Integer limits the possible maximum TTL value to
roughly 68 years. This may or may not be a reasonable value, but is
technically a valid number in the JSON response. Convert all TTL-related
fields to Long, so we can map such values.
2025-07-01 20:05:05 +02:00
afdad92ae6 test: run IT against Vault 1.20.0 (#102)
All checks were successful
CI / build-with-it (11, 1.2.0) (push) Successful in 59s
CI / build-with-it (11, 1.20.0) (push) Successful in 1m7s
CI / build-with-it (17, 1.2.0) (push) Successful in 56s
CI / build-with-it (17, 1.20.0) (push) Successful in 1m5s
CI / build-with-it (21, 1.2.0) (push) Successful in 54s
CI / build-with-it (true, 21, 1.20.0) (push) Successful in 1m0s
2025-06-26 18:17:23 +02:00
9fa360393d deps: update build and test dependencies 2025-06-26 18:12:42 +02:00
d28c189ec2 deps: update jackson to 2.19.1 (#101)
All checks were successful
CI / build-with-it (21, 1.2.0) (push) Successful in 1m1s
CI / build-with-it (true, 21, 1.19.5) (push) Successful in 1m9s
CI / build-with-it (11, 1.2.0) (push) Successful in 1m1s
CI / build-with-it (11, 1.19.5) (push) Successful in 1m7s
CI / build-with-it (17, 1.2.0) (push) Successful in 1m3s
CI / build-with-it (17, 1.19.5) (push) Successful in 1m11s
2025-06-20 20:28:52 +02:00
46fffcc711 prepare for next development iteration
All checks were successful
CI / build (11) (push) Successful in 39s
CI / build (17) (push) Successful in 39s
CI / build (true, 21) (push) Successful in 29s
CI / build-with-it (11, 1.2.0) (push) Successful in 57s
CI / build-with-it (11, 1.19.5) (push) Successful in 1m6s
CI / build-with-it (17, 1.19.5) (push) Successful in 1m3s
CI / build-with-it (17, 1.2.0) (push) Successful in 57s
CI / build-with-it (21, 1.2.0) (push) Successful in 51s
CI / build-with-it (true, 21, 1.19.5) (push) Successful in 1m1s
2025-06-02 16:59:30 +02:00
31d8f9b0aa prepare release v1.5.1
All checks were successful
CI / build-with-it (11, 1.2.0) (push) Successful in 59s
CI / build-with-it (11, 1.19.5) (push) Successful in 1m8s
CI / build-with-it (17, 1.19.5) (push) Successful in 1m9s
CI / build-with-it (17, 1.2.0) (push) Successful in 1m2s
CI / build-with-it (21, 1.2.0) (push) Successful in 53s
CI / build-with-it (true, 21, 1.19.5) (push) Successful in 1m0s
2025-06-02 16:59:29 +02:00
505b360343 test: run IT against Vault 1.19.5
All checks were successful
CI / build-with-it (11, 1.2.0) (push) Successful in 58s
CI / build-with-it (11, 1.19.5) (push) Successful in 1m6s
CI / build-with-it (17, 1.19.5) (push) Successful in 59s
CI / build-with-it (17, 1.2.0) (push) Successful in 53s
CI / build-with-it (21, 1.2.0) (push) Successful in 50s
CI / build-with-it (true, 21, 1.19.5) (push) Successful in 56s
2025-06-01 18:31:41 +02:00
51ab19cd8a deps: update test dependencies
All checks were successful
CI / build-with-it (11, 1.19.0) (push) Successful in 58s
CI / build-with-it (17, 1.2.0) (push) Successful in 50s
CI / build-with-it (17, 1.19.0) (push) Successful in 57s
CI / build-with-it (21, 1.2.0) (push) Successful in 47s
CI / build-with-it (11, 1.2.0) (push) Successful in 52s
CI / build-with-it (true, 21, 1.19.0) (push) Successful in 53s
2025-05-29 15:49:32 +02:00
Lehel Balázs
c8f396a5df use lookup-self for token check instead of lookup (#98) (#99)
All checks were successful
CI / build-with-it (11, 1.2.0) (push) Successful in 54s
CI / build-with-it (11, 1.19.0) (push) Successful in 1m0s
CI / build-with-it (17, 1.2.0) (push) Successful in 53s
CI / build-with-it (17, 1.19.0) (push) Successful in 58s
CI / build-with-it (21, 1.2.0) (push) Successful in 48s
CI / build-with-it (true, 21, 1.19.0) (push) Successful in 55s
Using the /lookup-self to retrieve information about the current token
requires less permissions than the general /lookup API and yields the
same results, if accessible.
2025-05-28 18:09:08 +03:00
4bd6039827 deps: update jackson to 2.19.0 (#97)
All checks were successful
CI / build-with-it (11, 1.2.0) (push) Successful in 53s
CI / build-with-it (11, 1.19.0) (push) Successful in 1m0s
CI / build-with-it (17, 1.2.0) (push) Successful in 55s
CI / build-with-it (17, 1.19.0) (push) Successful in 1m0s
CI / build-with-it (21, 1.2.0) (push) Successful in 50s
CI / build-with-it (true, 21, 1.19.0) (push) Successful in 56s
2025-04-27 17:25:23 +02:00
80abbda46f docs: update version and features in README
All checks were successful
CI / build (11) (push) Successful in 39s
CI / build (17) (push) Successful in 39s
CI / build (true, 21) (push) Successful in 34s
CI / build-with-it (11, 1.2.0) (push) Successful in 55s
CI / build-with-it (11, 1.19.0) (push) Successful in 1m2s
CI / build-with-it (17, 1.2.0) (push) Successful in 54s
CI / build-with-it (17, 1.19.0) (push) Successful in 1m0s
CI / build-with-it (21, 1.2.0) (push) Successful in 52s
CI / build-with-it (true, 21, 1.19.0) (push) Successful in 59s
2025-04-24 18:36:36 +02:00
a8e85b88d1 test: use WireMockTest annotation 2025-04-24 18:30:32 +02:00
91baed4fe5 test: update wiremock to 3.13.0 2025-04-24 18:30:04 +02:00
2ea261d36a prepare for next development iteration
All checks were successful
CI / build (11) (push) Successful in 36s
CI / build (17) (push) Successful in 36s
CI / build (true, 21) (push) Successful in 28s
2025-04-13 12:25:18 +02:00
35 changed files with 904 additions and 942 deletions

View File

@@ -15,10 +15,10 @@ jobs:
strategy: strategy:
matrix: matrix:
jdk: [ 11, 17, 21 ] jdk: [ 11, 17, 21 ]
vault: [ '1.2.0', '1.19.0' ] vault: [ '1.2.0', '1.20.0' ]
include: include:
- jdk: 21 - jdk: 21
vault: '1.19.0' vault: '1.20.0'
analysis: true analysis: true
steps: steps:
- name: Checkout - name: Checkout

View File

@@ -1,2 +1,2 @@
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar

View File

@@ -1,3 +1,24 @@
## 1.5.2 (2025-07-16)
### Dependencies
* Updated Jackson to 2.19.1 (#101)
### Fix
* Use `Long` for numeric TTL fields (#103) (#104)
### Test
* Tested against Vault 1.2 to 1.20 (#102)
## 1.5.1 (2025-06-02)
### Improvements
* Use `lookup-self` for token check instead of `lookup` (#98) (#99)
### Dependencies
* Updated Jackson to 2.19.0 (#97)
## 1.5.0 (2025-04-13) ## 1.5.0 (2025-04-13)
### Deprecations ### Deprecations

View File

@@ -28,10 +28,11 @@ Java Vault Connector is a connector library for [Vault](https://www.vaultproject
* Delete secrets * Delete secrets
* Renew/revoke leases * Renew/revoke leases
* Raw secret content or JSON decoding * Raw secret content or JSON decoding
* SQL secret handling
* KV v1 and v2 support * KV v1 and v2 support
* Database secret handling
* Transit API support
* Connector Factory with builder pattern * Connector Factory with builder pattern
* Tested against Vault 1.2 to 1.19 * Tested against Vault 1.2 to 1.20
## Maven Artifact ## Maven Artifact
@@ -39,7 +40,7 @@ Java Vault Connector is a connector library for [Vault](https://www.vaultproject
<dependency> <dependency>
<groupId>de.stklcode.jvault</groupId> <groupId>de.stklcode.jvault</groupId>
<artifactId>jvault-connector</artifactId> <artifactId>jvault-connector</artifactId>
<version>1.4.0</version> <version>1.5.2</version>
</dependency> </dependency>
``` ```

43
pom.xml
View File

@@ -1,10 +1,9 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>de.stklcode.jvault</groupId> <groupId>de.stklcode.jvault</groupId>
<artifactId>jvault-connector</artifactId> <artifactId>jvault-connector</artifactId>
<version>1.5.0</version> <version>1.5.2</version>
<packaging>jar</packaging> <packaging>jar</packaging>
@@ -33,7 +32,7 @@
<connection>scm:git:git://github.com/stklcode/jvaultconnector.git</connection> <connection>scm:git:git://github.com/stklcode/jvaultconnector.git</connection>
<developerConnection>scm:git:git@github.com:stklcode/jvaultconnector.git</developerConnection> <developerConnection>scm:git:git@github.com:stklcode/jvaultconnector.git</developerConnection>
<url>https://github.com/stklcode/jvaultconnector</url> <url>https://github.com/stklcode/jvaultconnector</url>
<tag>v1.5.0</tag> <tag>v1.5.2</tag>
</scm> </scm>
<issueManagement> <issueManagement>
@@ -43,32 +42,32 @@
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.build.outputTimestamp>2025-04-13T09:25:23Z</project.build.outputTimestamp> <project.build.outputTimestamp>2025-07-16T16:17:58Z</project.build.outputTimestamp>
<argLine></argLine> <argLine />
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.fasterxml.jackson.core</groupId> <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId> <artifactId>jackson-databind</artifactId>
<version>2.18.3</version> <version>2.19.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.fasterxml.jackson.datatype</groupId> <groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId> <artifactId>jackson-datatype-jsr310</artifactId>
<version>2.18.3</version> <version>2.19.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.junit.jupiter</groupId> <groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId> <artifactId>junit-jupiter</artifactId>
<version>5.12.1</version> <version>5.13.2</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.mockito</groupId> <groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId> <artifactId>mockito-core</artifactId>
<version>5.17.0</version> <version>5.18.0</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
@@ -80,7 +79,7 @@
<dependency> <dependency>
<groupId>org.wiremock</groupId> <groupId>org.wiremock</groupId>
<artifactId>wiremock</artifactId> <artifactId>wiremock</artifactId>
<version>3.12.1</version> <version>3.13.1</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
@@ -92,7 +91,7 @@
<dependency> <dependency>
<groupId>nl.jqno.equalsverifier</groupId> <groupId>nl.jqno.equalsverifier</groupId>
<artifactId>equalsverifier</artifactId> <artifactId>equalsverifier</artifactId>
<version>3.19.3</version> <version>3.19.4</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
@@ -117,7 +116,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId> <artifactId>maven-clean-plugin</artifactId>
<version>3.4.1</version> <version>3.5.0</version>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
@@ -131,7 +130,8 @@
<configuration> <configuration>
<argLine> <argLine>
@{argLine} @{argLine}
--add-opens de.stklcode.jvault.connector/de.stklcode.jvault.connector.test=com.fasterxml.jackson.databind --add-opens
de.stklcode.jvault.connector/de.stklcode.jvault.connector.test=com.fasterxml.jackson.databind
</argLine> </argLine>
</configuration> </configuration>
</plugin> </plugin>
@@ -163,13 +163,6 @@
<argLine> <argLine>
@{argLine} @{argLine}
--add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED
--add-opens de.stklcode.jvault.connector/de.stklcode.jvault.connector=ALL-UNNAMED
--add-opens de.stklcode.jvault.connector/de.stklcode.jvault.connector.exception=ALL-UNNAMED
--add-opens de.stklcode.jvault.connector/de.stklcode.jvault.connector.model=ALL-UNNAMED
--add-opens de.stklcode.jvault.connector/de.stklcode.jvault.connector.model.response=ALL-UNNAMED
--add-opens de.stklcode.jvault.connector/de.stklcode.jvault.connector.model.response.embedded=ALL-UNNAMED
--add-opens de.stklcode.jvault.connector/de.stklcode.jvault.connector.test=com.fasterxml.jackson.databind
--add-opens de.stklcode.jvault.connector/de.stklcode.jvault.connector.test=com.fasterxml.jackson.datatype.jsr310
</argLine> </argLine>
</configuration> </configuration>
</plugin> </plugin>
@@ -195,7 +188,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId> <artifactId>maven-enforcer-plugin</artifactId>
<version>3.5.0</version> <version>3.6.1</version>
<executions> <executions>
<execution> <execution>
<id>enforce-versions</id> <id>enforce-versions</id>
@@ -299,7 +292,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId> <artifactId>maven-gpg-plugin</artifactId>
<version>3.2.7</version> <version>3.2.8</version>
<executions> <executions>
<execution> <execution>
<id>sign-artifacts</id> <id>sign-artifacts</id>
@@ -370,7 +363,7 @@
<plugin> <plugin>
<groupId>org.owasp</groupId> <groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId> <artifactId>dependency-check-maven</artifactId>
<version>12.1.1</version> <version>12.1.3</version>
<configuration> <configuration>
<nvdApiKey>${env.NVD_API_KEY}</nvdApiKey> <nvdApiKey>${env.NVD_API_KEY}</nvdApiKey>
<nvdDatafeedUrl>${env.NVD_DATAFEED_URL}</nvdDatafeedUrl> <nvdDatafeedUrl>${env.NVD_DATAFEED_URL}</nvdDatafeedUrl>
@@ -394,7 +387,7 @@
<plugin> <plugin>
<groupId>org.sonatype.central</groupId> <groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId> <artifactId>central-publishing-maven-plugin</artifactId>
<version>0.7.0</version> <version>0.8.0</version>
<extensions>true</extensions> <extensions>true</extensions>
<configuration> <configuration>
<publishingServerId>central</publishingServerId> <publishingServerId>central</publishingServerId>

View File

@@ -54,6 +54,7 @@ public class HTTPVaultConnector implements VaultConnector {
private static final String PATH_AUTH = "auth"; private static final String PATH_AUTH = "auth";
private static final String PATH_AUTH_TOKEN = PATH_AUTH + "/token"; private static final String PATH_AUTH_TOKEN = PATH_AUTH + "/token";
private static final String PATH_LOOKUP = "/lookup"; private static final String PATH_LOOKUP = "/lookup";
private static final String PATH_LOOKUP_SELF = "/lookup-self";
private static final String PATH_CREATE = "/create"; private static final String PATH_CREATE = "/create";
private static final String PATH_ROLES = "/roles"; private static final String PATH_ROLES = "/roles";
private static final String PATH_CREATE_ORPHAN = "/create-orphan"; private static final String PATH_CREATE_ORPHAN = "/create-orphan";
@@ -191,7 +192,7 @@ public class HTTPVaultConnector implements VaultConnector {
/* set token */ /* set token */
this.token = token; this.token = token;
this.tokenTTL = 0; this.tokenTTL = 0;
TokenResponse res = request.post(PATH_AUTH_TOKEN + PATH_LOOKUP, emptyMap(), token, TokenResponse.class); TokenResponse res = request.get(PATH_AUTH_TOKEN + PATH_LOOKUP_SELF, emptyMap(), token, TokenResponse.class);
authorized = true; authorized = true;
return res; return res;

View File

@@ -32,7 +32,7 @@ import java.util.Objects;
*/ */
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public final class AppRole implements Serializable { public final class AppRole implements Serializable {
private static final long serialVersionUID = 693228837510483448L; private static final long serialVersionUID = 1546673231280751679L;
@JsonProperty("role_name") @JsonProperty("role_name")
private String name; private String name;
@@ -53,7 +53,7 @@ public final class AppRole implements Serializable {
@JsonProperty("secret_id_ttl") @JsonProperty("secret_id_ttl")
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
private Integer secretIdTtl; private Long secretIdTtl;
@JsonProperty("local_secret_ids") @JsonProperty("local_secret_ids")
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
@@ -61,11 +61,11 @@ public final class AppRole implements Serializable {
@JsonProperty("token_ttl") @JsonProperty("token_ttl")
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
private Integer tokenTtl; private Long tokenTtl;
@JsonProperty("token_max_ttl") @JsonProperty("token_max_ttl")
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
private Integer tokenMaxTtl; private Long tokenMaxTtl;
private List<String> tokenPolicies; private List<String> tokenPolicies;
@@ -75,7 +75,7 @@ public final class AppRole implements Serializable {
@JsonProperty("token_explicit_max_ttl") @JsonProperty("token_explicit_max_ttl")
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
private Integer tokenExplicitMaxTtl; private Long tokenExplicitMaxTtl;
@JsonProperty("token_no_default_policy") @JsonProperty("token_no_default_policy")
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
@@ -255,7 +255,7 @@ public final class AppRole implements Serializable {
/** /**
* @return maximum TTL in seconds for secrets * @return maximum TTL in seconds for secrets
*/ */
public Integer getSecretIdTtl() { public Long getSecretIdTtl() {
return secretIdTtl; return secretIdTtl;
} }
@@ -271,14 +271,14 @@ public final class AppRole implements Serializable {
/** /**
* @return token TTL in seconds * @return token TTL in seconds
*/ */
public Integer getTokenTtl() { public Long getTokenTtl() {
return tokenTtl; return tokenTtl;
} }
/** /**
* @return maximum token TTL in seconds, including renewals * @return maximum token TTL in seconds, including renewals
*/ */
public Integer getTokenMaxTtl() { public Long getTokenMaxTtl() {
return tokenMaxTtl; return tokenMaxTtl;
} }
@@ -286,7 +286,7 @@ public final class AppRole implements Serializable {
* @return explicit maximum token TTL in seconds, including renewals * @return explicit maximum token TTL in seconds, including renewals
* @since 0.9 * @since 0.9
*/ */
public Integer getTokenExplicitMaxTtl() { public Long getTokenExplicitMaxTtl() {
return tokenExplicitMaxTtl; return tokenExplicitMaxTtl;
} }
@@ -370,12 +370,12 @@ public final class AppRole implements Serializable {
private List<String> secretIdBoundCidrs; private List<String> secretIdBoundCidrs;
private List<String> tokenPolicies; private List<String> tokenPolicies;
private Integer secretIdNumUses; private Integer secretIdNumUses;
private Integer secretIdTtl; private Long secretIdTtl;
private Boolean localSecretIds; private Boolean localSecretIds;
private Integer tokenTtl; private Long tokenTtl;
private Integer tokenMaxTtl; private Long tokenMaxTtl;
private List<String> tokenBoundCidrs; private List<String> tokenBoundCidrs;
private Integer tokenExplicitMaxTtl; private Long tokenExplicitMaxTtl;
private Boolean tokenNoDefaultPolicy; private Boolean tokenNoDefaultPolicy;
private Integer tokenNumUses; private Integer tokenNumUses;
private Integer tokenPeriod; private Integer tokenPeriod;
@@ -520,7 +520,7 @@ public final class AppRole implements Serializable {
* @param secretIdTtl the TTL * @param secretIdTtl the TTL
* @return self * @return self
*/ */
public Builder withSecretIdTtl(final Integer secretIdTtl) { public Builder withSecretIdTtl(final Long secretIdTtl) {
this.secretIdTtl = secretIdTtl; this.secretIdTtl = secretIdTtl;
return this; return this;
} }
@@ -544,7 +544,7 @@ public final class AppRole implements Serializable {
* @param tokenTtl the TTL * @param tokenTtl the TTL
* @return self * @return self
*/ */
public Builder withTokenTtl(final Integer tokenTtl) { public Builder withTokenTtl(final Long tokenTtl) {
this.tokenTtl = tokenTtl; this.tokenTtl = tokenTtl;
return this; return this;
} }
@@ -555,7 +555,7 @@ public final class AppRole implements Serializable {
* @param tokenMaxTtl the TTL * @param tokenMaxTtl the TTL
* @return self * @return self
*/ */
public Builder withTokenMaxTtl(final Integer tokenMaxTtl) { public Builder withTokenMaxTtl(final Long tokenMaxTtl) {
this.tokenMaxTtl = tokenMaxTtl; this.tokenMaxTtl = tokenMaxTtl;
return this; return this;
} }
@@ -596,7 +596,7 @@ public final class AppRole implements Serializable {
* @param tokenExplicitMaxTtl the TTL * @param tokenExplicitMaxTtl the TTL
* @return self * @return self
*/ */
public Builder withTokenExplicitMaxTtl(final Integer tokenExplicitMaxTtl) { public Builder withTokenExplicitMaxTtl(final Long tokenExplicitMaxTtl) {
this.tokenExplicitMaxTtl = tokenExplicitMaxTtl; this.tokenExplicitMaxTtl = tokenExplicitMaxTtl;
return this; return this;
} }

View File

@@ -32,7 +32,7 @@ import java.util.*;
*/ */
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public final class Token implements Serializable { public final class Token implements Serializable {
private static final long serialVersionUID = 5208508683665365287L; private static final long serialVersionUID = 7003016071684507115L;
@JsonProperty("id") @JsonProperty("id")
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
@@ -56,11 +56,11 @@ public final class Token implements Serializable {
@JsonProperty("ttl") @JsonProperty("ttl")
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
private Integer ttl; private Long ttl;
@JsonProperty("explicit_max_ttl") @JsonProperty("explicit_max_ttl")
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
private Integer explicitMaxTtl; private Long explicitMaxTtl;
@JsonProperty("num_uses") @JsonProperty("num_uses")
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
@@ -162,7 +162,7 @@ public final class Token implements Serializable {
/** /**
* @return Time-to-live in seconds * @return Time-to-live in seconds
*/ */
public Integer getTtl() { public Long getTtl() {
return ttl; return ttl;
} }
@@ -170,7 +170,7 @@ public final class Token implements Serializable {
* @return Explicit maximum time-to-live in seconds * @return Explicit maximum time-to-live in seconds
* @since 0.9 * @since 0.9
*/ */
public Integer getExplicitMaxTtl() { public Long getExplicitMaxTtl() {
return explicitMaxTtl; return explicitMaxTtl;
} }
@@ -282,8 +282,8 @@ public final class Token implements Serializable {
private String displayName; private String displayName;
private Boolean noParent; private Boolean noParent;
private Boolean noDefaultPolicy; private Boolean noDefaultPolicy;
private Integer ttl; private Long ttl;
private Integer explicitMaxTtl; private Long explicitMaxTtl;
private Integer numUses; private Integer numUses;
private List<String> policies; private List<String> policies;
private Map<String, String> meta; private Map<String, String> meta;
@@ -331,7 +331,7 @@ public final class Token implements Serializable {
* @param ttl the ttl * @param ttl the ttl
* @return self * @return self
*/ */
public Builder withTtl(final Integer ttl) { public Builder withTtl(final Long ttl) {
this.ttl = ttl; this.ttl = ttl;
return this; return this;
} }
@@ -342,7 +342,7 @@ public final class Token implements Serializable {
* @param explicitMaxTtl the explicit max. TTL * @param explicitMaxTtl the explicit max. TTL
* @return self * @return self
*/ */
public Builder withExplicitMaxTtl(final Integer explicitMaxTtl) { public Builder withExplicitMaxTtl(final Long explicitMaxTtl) {
this.explicitMaxTtl = explicitMaxTtl; this.explicitMaxTtl = explicitMaxTtl;
return this; return this;
} }

View File

@@ -34,7 +34,7 @@ import java.util.Objects;
*/ */
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public final class TokenRole implements Serializable { public final class TokenRole implements Serializable {
private static final long serialVersionUID = -3505215215838576321L; private static final long serialVersionUID = -4856948364869438439L;
@JsonProperty("name") @JsonProperty("name")
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
@@ -78,7 +78,7 @@ public final class TokenRole implements Serializable {
@JsonProperty("token_explicit_max_ttl") @JsonProperty("token_explicit_max_ttl")
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
private Integer tokenExplicitMaxTtl; private Long tokenExplicitMaxTtl;
@JsonProperty("token_no_default_policy") @JsonProperty("token_no_default_policy")
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
@@ -204,7 +204,7 @@ public final class TokenRole implements Serializable {
/** /**
* @return Token explicit maximum TTL * @return Token explicit maximum TTL
*/ */
public Integer getTokenExplicitMaxTtl() { public Long getTokenExplicitMaxTtl() {
return tokenExplicitMaxTtl; return tokenExplicitMaxTtl;
} }
@@ -285,7 +285,7 @@ public final class TokenRole implements Serializable {
private String pathSuffix; private String pathSuffix;
private List<String> allowedEntityAliases; private List<String> allowedEntityAliases;
private List<String> tokenBoundCidrs; private List<String> tokenBoundCidrs;
private Integer tokenExplicitMaxTtl; private Long tokenExplicitMaxTtl;
private Boolean tokenNoDefaultPolicy; private Boolean tokenNoDefaultPolicy;
private Integer tokenNumUses; private Integer tokenNumUses;
private Integer tokenPeriod; private Integer tokenPeriod;
@@ -537,7 +537,7 @@ public final class TokenRole implements Serializable {
* @param tokenExplicitMaxTtl explicit maximum TTL * @param tokenExplicitMaxTtl explicit maximum TTL
* @return self * @return self
*/ */
public Builder withTokenExplicitMaxTtl(final Integer tokenExplicitMaxTtl) { public Builder withTokenExplicitMaxTtl(final Long tokenExplicitMaxTtl) {
this.tokenExplicitMaxTtl = tokenExplicitMaxTtl; this.tokenExplicitMaxTtl = tokenExplicitMaxTtl;
return this; return this;
} }

View File

@@ -15,13 +15,13 @@ import java.util.Objects;
*/ */
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public class MountConfig implements Serializable { public class MountConfig implements Serializable {
private static final long serialVersionUID = -8653909672663717792L; private static final long serialVersionUID = 7241631159224756605L;
@JsonProperty("default_lease_ttl") @JsonProperty("default_lease_ttl")
private Integer defaultLeaseTtl; private Long defaultLeaseTtl;
@JsonProperty("max_lease_ttl") @JsonProperty("max_lease_ttl")
private Integer maxLeaseTtl; private Long maxLeaseTtl;
@JsonProperty("force_no_cache") @JsonProperty("force_no_cache")
private Boolean forceNoCache; private Boolean forceNoCache;
@@ -56,14 +56,14 @@ public class MountConfig implements Serializable {
/** /**
* @return Default lease TTL * @return Default lease TTL
*/ */
public Integer getDefaultLeaseTtl() { public Long getDefaultLeaseTtl() {
return defaultLeaseTtl; return defaultLeaseTtl;
} }
/** /**
* @return Maximum lease TTL * @return Maximum lease TTL
*/ */
public Integer getMaxLeaseTtl() { public Long getMaxLeaseTtl() {
return maxLeaseTtl; return maxLeaseTtl;
} }

View File

@@ -34,7 +34,7 @@ import java.util.Objects;
*/ */
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public final class TokenData implements Serializable { public final class TokenData implements Serializable {
private static final long serialVersionUID = -5749716740973138916L; private static final long serialVersionUID = -4168046151053509784L;
@JsonProperty("accessor") @JsonProperty("accessor")
private String accessor; private String accessor;
@@ -43,7 +43,7 @@ public final class TokenData implements Serializable {
private Integer creationTime; private Integer creationTime;
@JsonProperty("creation_ttl") @JsonProperty("creation_ttl")
private Integer creationTtl; private Long creationTtl;
@JsonProperty("display_name") @JsonProperty("display_name")
private String name; private String name;
@@ -55,7 +55,7 @@ public final class TokenData implements Serializable {
private ZonedDateTime expireTime; private ZonedDateTime expireTime;
@JsonProperty("explicit_max_ttl") @JsonProperty("explicit_max_ttl")
private Integer explicitMaxTtl; private Long explicitMaxTtl;
@JsonProperty("id") @JsonProperty("id")
private String id; private String id;
@@ -82,7 +82,7 @@ public final class TokenData implements Serializable {
private boolean renewable; private boolean renewable;
@JsonProperty("ttl") @JsonProperty("ttl")
private Integer ttl; private Long ttl;
@JsonProperty("type") @JsonProperty("type")
private String type; private String type;
@@ -104,7 +104,7 @@ public final class TokenData implements Serializable {
/** /**
* @return Creation TTL (in seconds) * @return Creation TTL (in seconds)
*/ */
public Integer getCreationTtl() { public Long getCreationTtl() {
return creationTtl; return creationTtl;
} }
@@ -135,7 +135,7 @@ public final class TokenData implements Serializable {
* @return Explicit maximum TTL * @return Explicit maximum TTL
* @since 0.9 * @since 0.9
*/ */
public Integer getExplicitMaxTtl() { public Long getExplicitMaxTtl() {
return explicitMaxTtl; return explicitMaxTtl;
} }
@@ -202,7 +202,7 @@ public final class TokenData implements Serializable {
/** /**
* @return Token TTL (in seconds) * @return Token TTL (in seconds)
*/ */
public Integer getTtl() { public Long getTtl() {
return ttl; return ttl;
} }

View File

@@ -52,7 +52,7 @@ import static org.junit.jupiter.api.Assumptions.assumeTrue;
* @since 0.1 * @since 0.1
*/ */
class HTTPVaultConnectorIT { class HTTPVaultConnectorIT {
private static String VAULT_VERSION = "1.19.0"; // The vault version this test is supposed to run against. private static String VAULT_VERSION = "1.20.0"; // The vault version this test is supposed to run against.
private static final String KEY1 = "E38bkCm0VhUvpdCKGQpcohhD9XmcHJ/2hreOSY019Lho"; private static final String KEY1 = "E38bkCm0VhUvpdCKGQpcohhD9XmcHJ/2hreOSY019Lho";
private static final String KEY2 = "O5OHwDleY3IiPdgw61cgHlhsrEm6tVJkrxhF6QAnILd1"; private static final String KEY2 = "O5OHwDleY3IiPdgw61cgHlhsrEm6tVJkrxhF6QAnILd1";
private static final String KEY3 = "mw7Bm3nbt/UWa/juDjjL2EPQ04kiJ0saC5JEXwJvXYsB"; private static final String KEY3 = "mw7Bm3nbt/UWa/juDjjL2EPQ04kiJ0saC5JEXwJvXYsB";
@@ -862,7 +862,7 @@ class HTTPVaultConnectorIT {
.withDefaultPolicy() .withDefaultPolicy()
.withMeta("test", "success") .withMeta("test", "success")
.withMeta("key", "value") .withMeta("key", "value")
.withTtl(1234) .withTtl(1234L)
.build(); .build();
InvalidResponseException e = assertThrows( InvalidResponseException e = assertThrows(
InvalidResponseException.class, InvalidResponseException.class,
@@ -1222,7 +1222,7 @@ class HTTPVaultConnectorIT {
// Write configuration file. // Write configuration file.
File configFile = new File(dir, "vault.conf"); File configFile = new File(dir, "vault.conf");
try { try {
Files.write(configFile.toPath(), config.toString().getBytes(UTF_8)); Files.writeString(configFile.toPath(), config.toString(), UTF_8);
} catch (IOException e) { } catch (IOException e) {
throw new IllegalStateException("Unable to generate config file", e); throw new IllegalStateException("Unable to generate config file", e);
} }
@@ -1282,10 +1282,8 @@ class HTTPVaultConnectorIT {
return socket.getLocalPort(); return socket.getLocalPort();
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); throw new IllegalStateException("Unable to find a free TCP port", e);
} }
throw new IllegalStateException("Unable to find a free TCP port");
} }
/** /**

View File

@@ -17,13 +17,13 @@
package de.stklcode.jvault.connector; package de.stklcode.jvault.connector;
import com.github.tomakehurst.wiremock.client.WireMock; import com.github.tomakehurst.wiremock.client.WireMock;
import com.github.tomakehurst.wiremock.junit5.WireMockExtension; import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo;
import com.github.tomakehurst.wiremock.junit5.WireMockTest;
import de.stklcode.jvault.connector.exception.ConnectionException; import de.stklcode.jvault.connector.exception.ConnectionException;
import de.stklcode.jvault.connector.exception.InvalidResponseException; import de.stklcode.jvault.connector.exception.InvalidResponseException;
import de.stklcode.jvault.connector.exception.PermissionDeniedException; import de.stklcode.jvault.connector.exception.PermissionDeniedException;
import de.stklcode.jvault.connector.exception.VaultConnectorException; import de.stklcode.jvault.connector.exception.VaultConnectorException;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.junit.jupiter.api.function.Executable; import org.junit.jupiter.api.function.Executable;
import java.io.IOException; import java.io.IOException;
@@ -36,9 +36,7 @@ import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
import java.util.Collections; import java.util.Collections;
import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.*;
import static com.github.tomakehurst.wiremock.client.WireMock.anyUrl;
import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
/** /**
@@ -48,18 +46,15 @@ import static org.junit.jupiter.api.Assertions.*;
* @author Stefan Kalscheuer * @author Stefan Kalscheuer
* @since 0.7.0 * @since 0.7.0
*/ */
@WireMockTest
class HTTPVaultConnectorTest { class HTTPVaultConnectorTest {
@RegisterExtension
static WireMockExtension wireMock = WireMockExtension.newInstance()
.options(wireMockConfig().dynamicPort())
.build();
/** /**
* Test exceptions thrown during request. * Test exceptions thrown during request.
*/ */
@Test @Test
void requestExceptionTest() throws IOException, URISyntaxException { void requestExceptionTest(WireMockRuntimeInfo wireMock) throws IOException, URISyntaxException {
HTTPVaultConnector connector = HTTPVaultConnector.builder(wireMock.url("/")).withTimeout(250).build(); HTTPVaultConnector connector = HTTPVaultConnector.builder(wireMock.getHttpBaseUrl()).withTimeout(250).build();
// Test invalid response code. // Test invalid response code.
final int responseCode = 400; final int responseCode = 400;
@@ -94,9 +89,9 @@ class HTTPVaultConnectorTest {
assertInstanceOf(IOException.class, e.getCause(), "Unexpected cause"); assertInstanceOf(IOException.class, e.getCause(), "Unexpected cause");
// Now simulate a failing request that succeeds on second try. // Now simulate a failing request that succeeds on second try.
connector = HTTPVaultConnector.builder(wireMock.url("/")).withNumberOfRetries(1).withTimeout(250).build(); connector = HTTPVaultConnector.builder(wireMock.getHttpBaseUrl()).withNumberOfRetries(1).withTimeout(250).build();
wireMock.stubFor( stubFor(
WireMock.any(anyUrl()) WireMock.any(anyUrl())
.willReturn(aResponse().withStatus(500)) .willReturn(aResponse().withStatus(500))
.willReturn(aResponse().withStatus(500)) .willReturn(aResponse().withStatus(500))
@@ -193,8 +188,8 @@ class HTTPVaultConnectorTest {
* Test behavior on unparsable responses. * Test behavior on unparsable responses.
*/ */
@Test @Test
void parseExceptionTest() throws URISyntaxException { void parseExceptionTest(WireMockRuntimeInfo wireMock) throws URISyntaxException {
HTTPVaultConnector connector = HTTPVaultConnector.builder(wireMock.url("/")).withTimeout(250).build(); HTTPVaultConnector connector = HTTPVaultConnector.builder(wireMock.getHttpBaseUrl()).withTimeout(250).build();
// Mock authorization. // Mock authorization.
setPrivate(connector, "authorized", true); setPrivate(connector, "authorized", true);
// Mock response. // Mock response.
@@ -227,8 +222,8 @@ class HTTPVaultConnectorTest {
* Test requests that expect an empty response with code 204, but receive a 200 body. * Test requests that expect an empty response with code 204, but receive a 200 body.
*/ */
@Test @Test
void nonEmpty204ResponseTest() throws URISyntaxException { void nonEmpty204ResponseTest(WireMockRuntimeInfo wireMock) throws URISyntaxException {
HTTPVaultConnector connector = HTTPVaultConnector.builder(wireMock.url("/")).withTimeout(250).build(); HTTPVaultConnector connector = HTTPVaultConnector.builder(wireMock.getHttpBaseUrl()).withTimeout(250).build();
// Mock authorization. // Mock authorization.
setPrivate(connector, "authorized", true); setPrivate(connector, "authorized", true);
// Mock response. // Mock response.
@@ -310,7 +305,7 @@ class HTTPVaultConnectorTest {
} }
private void mockHttpResponse(int status, String body, String contentType) { private void mockHttpResponse(int status, String body, String contentType) {
wireMock.stubFor( stubFor(
WireMock.any(anyUrl()).willReturn( WireMock.any(anyUrl()).willReturn(
aResponse().withStatus(status).withBody(body).withHeader("Content-Type", contentType) aResponse().withStatus(status).withBody(body).withHeader("Content-Type", contentType)
) )

View File

@@ -42,11 +42,11 @@ class AppRoleTest extends AbstractModelTest<AppRole> {
private static final String POLICY = "policy"; private static final String POLICY = "policy";
private static final String POLICY_2 = "policy2"; private static final String POLICY_2 = "policy2";
private static final Integer SECRET_ID_NUM_USES = 10; private static final Integer SECRET_ID_NUM_USES = 10;
private static final Integer SECRET_ID_TTL = 7200; private static final Long SECRET_ID_TTL = 7200L;
private static final Boolean LOCAL_SECRET_IDS = false; private static final Boolean LOCAL_SECRET_IDS = false;
private static final Integer TOKEN_TTL = 4800; private static final Long TOKEN_TTL = 4800L;
private static final Integer TOKEN_MAX_TTL = 9600; private static final Long TOKEN_MAX_TTL = 9600L;
private static final Integer TOKEN_EXPLICIT_MAX_TTL = 14400; private static final Long TOKEN_EXPLICIT_MAX_TTL = 14400L;
private static final Boolean TOKEN_NO_DEFAULT_POLICY = false; private static final Boolean TOKEN_NO_DEFAULT_POLICY = false;
private static final Integer TOKEN_NUM_USES = 42; private static final Integer TOKEN_NUM_USES = 42;
private static final Integer TOKEN_PERIOD = 1234; private static final Integer TOKEN_PERIOD = 1234;

View File

@@ -59,7 +59,7 @@ class TokenRoleTest extends AbstractModelTest<TokenRole> {
private static final String TOKEN_BOUND_CIDR_2 = "198.51.100.0/24"; private static final String TOKEN_BOUND_CIDR_2 = "198.51.100.0/24";
private static final String TOKEN_BOUND_CIDR_3 = "203.0.113.0/24"; private static final String TOKEN_BOUND_CIDR_3 = "203.0.113.0/24";
private static final List<String> TOKEN_BOUND_CIDRS = Arrays.asList(TOKEN_BOUND_CIDR_2, TOKEN_BOUND_CIDR_1); private static final List<String> TOKEN_BOUND_CIDRS = Arrays.asList(TOKEN_BOUND_CIDR_2, TOKEN_BOUND_CIDR_1);
private static final Integer TOKEN_EXPLICIT_MAX_TTL = 1234; private static final Long TOKEN_EXPLICIT_MAX_TTL = 1234L;
private static final Boolean TOKEN_NO_DEFAULT_POLICY = false; private static final Boolean TOKEN_NO_DEFAULT_POLICY = false;
private static final Integer TOKEN_NUM_USES = 5; private static final Integer TOKEN_NUM_USES = 5;
private static final Integer TOKEN_PERIOD = 2345; private static final Integer TOKEN_PERIOD = 2345;

View File

@@ -35,8 +35,8 @@ class TokenTest extends AbstractModelTest<Token> {
private static final String DISPLAY_NAME = "display-name"; private static final String DISPLAY_NAME = "display-name";
private static final Boolean NO_PARENT = false; private static final Boolean NO_PARENT = false;
private static final Boolean NO_DEFAULT_POLICY = false; private static final Boolean NO_DEFAULT_POLICY = false;
private static final Integer TTL = 123; private static final Long TTL = 123L;
private static final Integer EXPLICIT_MAX_TTL = 456; private static final Long EXPLICIT_MAX_TTL = 456L;
private static final Integer NUM_USES = 4; private static final Integer NUM_USES = 4;
private static final List<String> POLICIES = new ArrayList<>(); private static final List<String> POLICIES = new ArrayList<>();
private static final String POLICY = "policy"; private static final String POLICY = "policy";

View File

@@ -16,7 +16,6 @@
package de.stklcode.jvault.connector.model.response; package de.stklcode.jvault.connector.model.response;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import de.stklcode.jvault.connector.model.AppRole; import de.stklcode.jvault.connector.model.AppRole;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -32,9 +31,9 @@ import static org.junit.jupiter.api.Assertions.*;
* @since 0.6.2 * @since 0.6.2
*/ */
class AppRoleResponseTest extends AbstractModelTest<AppRoleResponse> { class AppRoleResponseTest extends AbstractModelTest<AppRoleResponse> {
private static final Integer ROLE_TOKEN_TTL = 1200; private static final Long ROLE_TOKEN_TTL = 1200L;
private static final Integer ROLE_TOKEN_MAX_TTL = 1800; private static final Long ROLE_TOKEN_MAX_TTL = 1800L;
private static final Integer ROLE_SECRET_TTL = 600; private static final Long ROLE_SECRET_TTL = 600L;
private static final Integer ROLE_SECRET_NUM_USES = 40; private static final Integer ROLE_SECRET_NUM_USES = 40;
private static final String ROLE_POLICY = "default"; private static final String ROLE_POLICY = "default";
private static final Integer ROLE_PERIOD = 0; private static final Integer ROLE_PERIOD = 0;
@@ -67,12 +66,10 @@ class AppRoleResponseTest extends AbstractModelTest<AppRoleResponse> {
@Override @Override
protected AppRoleResponse createFull() { protected AppRoleResponse createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue(RES_JSON, AppRoleResponse.class); () -> objectMapper.readValue(RES_JSON, AppRoleResponse.class),
} catch (JsonProcessingException e) { "Creation of full model instance failed"
fail("Creation of full model instance failed", e); );
return null;
}
} }
/** /**

View File

@@ -16,7 +16,6 @@
package de.stklcode.jvault.connector.model.response; package de.stklcode.jvault.connector.model.response;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import de.stklcode.jvault.connector.model.AuthBackend; import de.stklcode.jvault.connector.model.AuthBackend;
import de.stklcode.jvault.connector.model.response.embedded.AuthMethod; import de.stklcode.jvault.connector.model.response.embedded.AuthMethod;
@@ -45,9 +44,9 @@ class AuthMethodsResponseTest extends AbstractModelTest<AuthMethodsResponse> {
private static final String TK_UUID = "32ea9681-6bd6-6cec-eec3-d11260ba9741"; private static final String TK_UUID = "32ea9681-6bd6-6cec-eec3-d11260ba9741";
private static final String TK_ACCESSOR = "auth_token_ac0dd95a"; private static final String TK_ACCESSOR = "auth_token_ac0dd95a";
private static final String TK_DESCR = "token based credentials"; private static final String TK_DESCR = "token based credentials";
private static final Integer TK_LEASE_TTL = 0; private static final Long TK_LEASE_TTL = 0L;
private static final Boolean TK_FORCE_NO_CACHE = false; private static final Boolean TK_FORCE_NO_CACHE = false;
private static final Integer TK_MAX_LEASE_TTL = 0; private static final Long TK_MAX_LEASE_TTL = 0L;
private static final String TK_TOKEN_TYPE = "default-service"; private static final String TK_TOKEN_TYPE = "default-service";
private static final String TK_RUNNING_PLUGIN_VERSION = "v1.15.3+builtin.vault"; private static final String TK_RUNNING_PLUGIN_VERSION = "v1.15.3+builtin.vault";
@@ -90,12 +89,10 @@ class AuthMethodsResponseTest extends AbstractModelTest<AuthMethodsResponse> {
@Override @Override
protected AuthMethodsResponse createFull() { protected AuthMethodsResponse createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue(RES_JSON, AuthMethodsResponse.class); () -> objectMapper.readValue(RES_JSON, AuthMethodsResponse.class),
} catch (JsonProcessingException e) { "Creation of full model instance failed"
fail("Creation of full model instance failed", e); );
return null;
}
} }
/** /**

View File

@@ -16,7 +16,6 @@
package de.stklcode.jvault.connector.model.response; package de.stklcode.jvault.connector.model.response;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import de.stklcode.jvault.connector.model.response.embedded.AuthData; import de.stklcode.jvault.connector.model.response.embedded.AuthData;
import de.stklcode.jvault.connector.model.response.embedded.MfaConstraintAny; import de.stklcode.jvault.connector.model.response.embedded.MfaConstraintAny;
@@ -101,12 +100,10 @@ class AuthResponseTest extends AbstractModelTest<AuthResponse> {
@Override @Override
protected AuthResponse createFull() { protected AuthResponse createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue(RES_JSON, AuthResponse.class); () -> objectMapper.readValue(RES_JSON, AuthResponse.class),
} catch (JsonProcessingException e) { "Creation of full model instance failed"
fail("Creation of full model instance failed", e); );
return null;
}
} }
@Test @Test

View File

@@ -16,7 +16,6 @@
package de.stklcode.jvault.connector.model.response; package de.stklcode.jvault.connector.model.response;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -49,12 +48,10 @@ class CredentialsResponseTest extends AbstractModelTest<CredentialsResponse> {
@Override @Override
protected CredentialsResponse createFull() { protected CredentialsResponse createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue(JSON, CredentialsResponse.class); () -> objectMapper.readValue(JSON, CredentialsResponse.class),
} catch (JsonProcessingException e) { "Creation of full model instance failed"
fail("Creation of full model instance failed", e); );
return null;
}
} }
/** /**

View File

@@ -16,7 +16,6 @@
package de.stklcode.jvault.connector.model.response; package de.stklcode.jvault.connector.model.response;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -42,12 +41,10 @@ class ErrorResponseTest extends AbstractModelTest<ErrorResponse> {
@Override @Override
protected ErrorResponse createFull() { protected ErrorResponse createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue(JSON, ErrorResponse.class); () -> objectMapper.readValue(JSON, ErrorResponse.class),
} catch (JsonProcessingException e) { "Creation of full model instance failed"
fail("Creation of full model instance failed", e); );
return null;
}
} }
/** /**

View File

@@ -16,7 +16,6 @@
package de.stklcode.jvault.connector.model.response; package de.stklcode.jvault.connector.model.response;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -67,12 +66,10 @@ class HealthResponseTest extends AbstractModelTest<HealthResponse> {
@Override @Override
protected HealthResponse createFull() { protected HealthResponse createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue(RES_JSON, HealthResponse.class); () -> objectMapper.readValue(RES_JSON, HealthResponse.class),
} catch (JsonProcessingException e) { "Creation of full model instance failed"
fail("Creation of full model instance failed", e); );
return null;
}
} }
/** /**

View File

@@ -16,7 +16,6 @@
package de.stklcode.jvault.connector.model.response; package de.stklcode.jvault.connector.model.response;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -38,12 +37,10 @@ class HelpResponseTest extends AbstractModelTest<HelpResponse> {
@Override @Override
protected HelpResponse createFull() { protected HelpResponse createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue(JSON, HelpResponse.class); () -> objectMapper.readValue(JSON, HelpResponse.class),
} catch (JsonProcessingException e) { "Creation of full model instance failed"
fail("Creation of full model instance failed", e); );
return null;
}
} }
/** /**

View File

@@ -16,7 +16,6 @@
package de.stklcode.jvault.connector.model.response; package de.stklcode.jvault.connector.model.response;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -95,12 +94,10 @@ class MetaSecretResponseTest extends AbstractModelTest<MetaSecretResponse> {
@Override @Override
protected MetaSecretResponse createFull() { protected MetaSecretResponse createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue(SECRET_JSON_V2, MetaSecretResponse.class); () -> objectMapper.readValue(SECRET_JSON_V2, MetaSecretResponse.class),
} catch (JsonProcessingException e) { "Creation of full model instance failed"
fail("Creation of full model instance failed", e); );
return null;
}
} }
/** /**

View File

@@ -16,7 +16,6 @@
package de.stklcode.jvault.connector.model.response; package de.stklcode.jvault.connector.model.response;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -80,12 +79,10 @@ class MetadataResponseTest extends AbstractModelTest<MetadataResponse> {
@Override @Override
protected MetadataResponse createFull() { protected MetadataResponse createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue(META_JSON, MetadataResponse.class); () -> objectMapper.readValue(META_JSON, MetadataResponse.class),
} catch (JsonProcessingException e) { "Creation of full model instance failed"
fail("Creation of full model instance failed", e); );
return null;
}
} }
/** /**

View File

@@ -17,7 +17,6 @@
package de.stklcode.jvault.connector.model.response; package de.stklcode.jvault.connector.model.response;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.exception.InvalidResponseException; import de.stklcode.jvault.connector.exception.InvalidResponseException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -60,12 +59,10 @@ class PlainSecretResponseTest extends AbstractModelTest<PlainSecretResponse> {
@Override @Override
protected PlainSecretResponse createFull() { protected PlainSecretResponse createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue(SECRET_JSON, PlainSecretResponse.class); () -> objectMapper.readValue(SECRET_JSON, PlainSecretResponse.class),
} catch (JsonProcessingException e) { "Creation of full model instance failed"
fail("Creation of full model instance failed", e); );
return null;
}
} }
/** /**

View File

@@ -16,7 +16,6 @@
package de.stklcode.jvault.connector.model.response; package de.stklcode.jvault.connector.model.response;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -83,12 +82,10 @@ class SealResponseTest extends AbstractModelTest<SealResponse> {
@Override @Override
protected SealResponse createFull() { protected SealResponse createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue(RES_UNSEALED, SealResponse.class); () -> objectMapper.readValue(RES_UNSEALED, SealResponse.class),
} catch (JsonProcessingException e) { "Creation of full model instance failed"
fail("Creation of full model instance failed", e); );
return null;
}
} }
/** /**

View File

@@ -16,13 +16,13 @@
package de.stklcode.jvault.connector.model.response; package de.stklcode.jvault.connector.model.response;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import java.util.List; import java.util.List;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
/** /**
* JUnit Test for {@link SecretListResponse} model. * JUnit Test for {@link SecretListResponse} model.
@@ -52,12 +52,10 @@ class SecretListResponseTest extends AbstractModelTest<SecretListResponse> {
@Override @Override
protected SecretListResponse createFull() { protected SecretListResponse createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue(JSON, SecretListResponse.class); () -> objectMapper.readValue(JSON, SecretListResponse.class),
} catch (JsonProcessingException e) { "Creation of full model instance failed"
fail("Creation of full model instance failed", e); );
return null;
}
} }
/** /**

View File

@@ -16,7 +16,6 @@
package de.stklcode.jvault.connector.model.response; package de.stklcode.jvault.connector.model.response;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -48,12 +47,10 @@ class SecretVersionResponseTest extends AbstractModelTest<SecretVersionResponse>
@Override @Override
protected SecretVersionResponse createFull() { protected SecretVersionResponse createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue(META_JSON, SecretVersionResponse.class); () -> objectMapper.readValue(META_JSON, SecretVersionResponse.class),
} catch (JsonProcessingException e) { "Creation of full model instance failed"
fail("Creation of full model instance failed", e); );
return null;
}
} }
/** /**

View File

@@ -16,7 +16,6 @@
package de.stklcode.jvault.connector.model.response; package de.stklcode.jvault.connector.model.response;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import de.stklcode.jvault.connector.model.response.embedded.TokenData; import de.stklcode.jvault.connector.model.response.embedded.TokenData;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -35,8 +34,8 @@ import static org.junit.jupiter.api.Assertions.*;
*/ */
class TokenResponseTest extends AbstractModelTest<TokenResponse> { class TokenResponseTest extends AbstractModelTest<TokenResponse> {
private static final Integer TOKEN_CREATION_TIME = 1457533232; private static final Integer TOKEN_CREATION_TIME = 1457533232;
private static final Integer TOKEN_TTL = 2764800; private static final Long TOKEN_TTL = 2764800L;
private static final Integer TOKEN_EXPLICIT_MAX_TTL = 0; private static final Long TOKEN_EXPLICIT_MAX_TTL = 0L;
private static final String TOKEN_DISPLAY_NAME = "token"; private static final String TOKEN_DISPLAY_NAME = "token";
private static final String TOKEN_META_KEY = "foo"; private static final String TOKEN_META_KEY = "foo";
private static final String TOKEN_META_VALUE = "bar"; private static final String TOKEN_META_VALUE = "bar";
@@ -47,7 +46,7 @@ class TokenResponseTest extends AbstractModelTest<TokenResponse> {
private static final String TOKEN_POLICY_1 = "default"; private static final String TOKEN_POLICY_1 = "default";
private static final String TOKEN_POLICY_2 = "web"; private static final String TOKEN_POLICY_2 = "web";
private static final Boolean RES_RENEWABLE = false; private static final Boolean RES_RENEWABLE = false;
private static final Integer RES_TTL = 2591976; private static final Long RES_TTL = 2591976L;
private static final Integer RES_LEASE_DURATION = 0; private static final Integer RES_LEASE_DURATION = 0;
private static final String TOKEN_ACCESSOR = "VKvzT2fKHFsZFUus9LyoXCvu"; private static final String TOKEN_ACCESSOR = "VKvzT2fKHFsZFUus9LyoXCvu";
private static final String TOKEN_ENTITY_ID = "7d2e3179-f69b-450c-7179-ac8ee8bd8ca9"; private static final String TOKEN_ENTITY_ID = "7d2e3179-f69b-450c-7179-ac8ee8bd8ca9";
@@ -96,12 +95,10 @@ class TokenResponseTest extends AbstractModelTest<TokenResponse> {
@Override @Override
protected TokenResponse createFull() { protected TokenResponse createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue(RES_JSON, TokenResponse.class); () -> objectMapper.readValue(RES_JSON, TokenResponse.class),
} catch (JsonProcessingException e) { "Creation of full model instance failed"
fail("Creation of full model instance failed", e); );
return null;
}
} }
/** /**

View File

@@ -16,7 +16,6 @@
package de.stklcode.jvault.connector.model.response; package de.stklcode.jvault.connector.model.response;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -39,19 +38,17 @@ class TransitResponseTest extends AbstractModelTest<TransitResponse> {
@Override @Override
protected TransitResponse createFull() { protected TransitResponse createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue( () -> objectMapper.readValue(
json( json(
"\"ciphertext\": \"" + CIPHERTEXT + "\", " + "\"ciphertext\": \"" + CIPHERTEXT + "\", " +
"\"plaintext\": \"" + PLAINTEXT + "\", " + "\"plaintext\": \"" + PLAINTEXT + "\", " +
"\"sum\": \"" + SUM + "\"" "\"sum\": \"" + SUM + "\""
), ),
TransitResponse.class TransitResponse.class
),
"Creation of full model failed"
); );
} catch (JsonProcessingException e) {
fail("Creation of full model failed", e);
return null;
}
} }
@Test @Test

View File

@@ -1,6 +1,5 @@
package de.stklcode.jvault.connector.model.response.embedded; package de.stklcode.jvault.connector.model.response.embedded;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.stklcode.jvault.connector.model.AbstractModelTest; import de.stklcode.jvault.connector.model.AbstractModelTest;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -14,8 +13,8 @@ import static org.junit.jupiter.api.Assertions.*;
* @author Stefan Kalscheuer * @author Stefan Kalscheuer
*/ */
class MountConfigTest extends AbstractModelTest<MountConfig> { class MountConfigTest extends AbstractModelTest<MountConfig> {
private static final Integer DEFAULT_LEASE_TTL = 1800; private static final Long DEFAULT_LEASE_TTL = 1800L;
private static final Integer MAX_LEASE_TTL = 3600; private static final Long MAX_LEASE_TTL = 3600L;
private static final Boolean FORCE_NO_CACHE = false; private static final Boolean FORCE_NO_CACHE = false;
private static final String TOKEN_TYPE = "default-service"; private static final String TOKEN_TYPE = "default-service";
private static final String AUDIT_NON_HMAC_REQ_KEYS_1 = "req1"; private static final String AUDIT_NON_HMAC_REQ_KEYS_1 = "req1";
@@ -62,12 +61,10 @@ class MountConfigTest extends AbstractModelTest<MountConfig> {
@Override @Override
protected MountConfig createFull() { protected MountConfig createFull() {
try { return assertDoesNotThrow(
return objectMapper.readValue(RES_JSON, MountConfig.class); () -> objectMapper.readValue(RES_JSON, MountConfig.class),
} catch (JsonProcessingException e) { "Creation of full model instance failed"
fail("Creation of full model instance failed", e); );
return null;
}
} }
/** /**