Fix TTL format for PKI Certificate Requests.
We now send TTL validity as seconds instead of attempting to serialize a Duration object. Closes gh-263.
This commit is contained in:
@@ -17,6 +17,7 @@ package org.springframework.vault.core;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -176,7 +177,7 @@ public class VaultPkiTemplate implements VaultPkiOperations {
|
||||
}
|
||||
|
||||
if (certificateRequest.getTtl() != null) {
|
||||
request.put("ttl", certificateRequest.getTtl());
|
||||
request.put("ttl", certificateRequest.getTtl().get(ChronoUnit.SECONDS));
|
||||
}
|
||||
|
||||
if (certificateRequest.isExcludeCommonNameFromSubjectAltNames()) {
|
||||
|
||||
@@ -20,7 +20,12 @@ import java.io.InputStream;
|
||||
import java.math.BigInteger;
|
||||
import java.security.cert.CertificateFactory;
|
||||
import java.security.cert.X509CRL;
|
||||
import java.security.cert.X509Certificate;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -108,6 +113,23 @@ public class VaultPkiTemplateIntegrationTests extends IntegrationTestSupport {
|
||||
.isEqualTo("CN=hello.example.com");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void issueCertificateWithTtlShouldCreateCertificate() {
|
||||
|
||||
VaultCertificateRequest request = VaultCertificateRequest.builder()
|
||||
.ttl(Duration.ofHours(48)).commonName("hello.example.com").build();
|
||||
|
||||
VaultCertificateResponse certificateResponse = pkiOperations.issueCertificate(
|
||||
"testrole", request);
|
||||
|
||||
X509Certificate certificate = certificateResponse.getData().getX509Certificate();
|
||||
|
||||
Instant now = Instant.now();
|
||||
assertThat(certificate.getNotAfter()).isAfter(
|
||||
Date.from(now.plus(40, ChronoUnit.HOURS))).isBefore(
|
||||
Date.from(now.plus(50, ChronoUnit.HOURS)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void signShouldSignCsr() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user