From 97eea3a20f81a758ab07d2cbff9a932f49d0ba53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20Le=C3=9Fmann=20=28=40MarkL4YG=29?= Date: Sat, 23 Nov 2024 12:50:56 +0100 Subject: [PATCH] chore: Make TestOpenSSLCertificateCreator a spring boot test --- .../openssl/OpenSSLCertificateCreator.java | 18 +++++++++--------- .../TestOpenSSLCertificateCreator.java | 11 ++++++++++- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/main/java/de/mlessmann/certassist/openssl/OpenSSLCertificateCreator.java b/src/main/java/de/mlessmann/certassist/openssl/OpenSSLCertificateCreator.java index 9b5d06e..f84b1b9 100644 --- a/src/main/java/de/mlessmann/certassist/openssl/OpenSSLCertificateCreator.java +++ b/src/main/java/de/mlessmann/certassist/openssl/OpenSSLCertificateCreator.java @@ -88,28 +88,28 @@ public class OpenSSLCertificateCreator { throw new CommandLineOperationException("Could not create temporary directory for certificate creation", e); } - String certPassword = passwordProvider.generateNewPassword(); - Path keyFile = createKeyfile(request, tmpDir.resolve("certificate.key"), certPassword); + String keypassphrase = passwordProvider.generateNewPassword(); + Path keyFile = createKeyfile(request, tmpDir.resolve("certificate.key"), keypassphrase); if ( request.getType() == RequestType.ROOT_AUTHORITY || request.getType() == RequestType.STANDALONE_CERTIFICATE ) { - Path certificate = createCertificate(request, keyFile, tmpDir.resolve("certificate.crt"), certPassword); + Path certificate = createCertificate(request, keyFile, tmpDir.resolve("certificate.crt"), keypassphrase); String fingerprint = getCertificateFingerprint(certificate); - passwordProvider.setPasswordFor(fingerprint, certPassword); + passwordProvider.setPasswordFor(fingerprint, keypassphrase); return new OpenSSLCertificateResult(tmpDir, certificate, keyFile, certificate, fingerprint); } try (var certAuthority = certificateProvider.requestCertificateUsage(request.getTrustingAuthority())) { - Path unsignedCert = createSigningRequest(request, keyFile, tmpDir.resolve("child.csr"), certPassword); + Path unsignedCert = createSigningRequest(request, keyFile, tmpDir.resolve("child.csr"), keypassphrase); Path signedCert = signCertificate( request, certAuthority.certificatePath(), certAuthority.certificateKeyPath(), unsignedCert, - certPassword + keypassphrase ); String fingerprint = getCertificateFingerprint(signedCert); - passwordProvider.setPasswordFor(fingerprint, certPassword); + passwordProvider.setPasswordFor(fingerprint, keypassphrase); Path fullchain = tmpDir.resolve("fullchain.pem"); try { @@ -129,7 +129,7 @@ public class OpenSSLCertificateCreator { private Path createKeyfile(CertificateRequest request, Path outFile, String filePassword) throws CommandLineOperationException, InterruptedException { Path keyFile = outFile.toAbsolutePath(); - log.atDebug().log("Writing new certificate key to {}", keyFile); + log.debug("Writing new certificate key to {}", keyFile); try { StartedProcess keygenProc = new ProcessExecutor() @@ -158,7 +158,7 @@ public class OpenSSLCertificateCreator { private Path createCertificate(CertificateRequest request, Path keyFile, Path outFile, String certPassword) throws CommandLineOperationException, InterruptedException { - log.atDebug().log("Writing new certificate file {}", outFile); + log.debug("Writing new certificate file {}", outFile); String certSubject = buildSubjectArg(request); try { diff --git a/src/test/java/de/mlessmann/certassist/TestOpenSSLCertificateCreator.java b/src/test/java/de/mlessmann/certassist/TestOpenSSLCertificateCreator.java index 5c1da75..c39a807 100644 --- a/src/test/java/de/mlessmann/certassist/TestOpenSSLCertificateCreator.java +++ b/src/test/java/de/mlessmann/certassist/TestOpenSSLCertificateCreator.java @@ -9,14 +9,23 @@ import java.nio.file.Path; import java.util.Objects; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +@SpringBootTest class TestOpenSSLCertificateCreator { public static final String TEST_CERT_PASSPHRASE = "ABC-123"; public static final Path TEST_CERT_PATH = Path.of("src/test/resources/openssl"); public static final String ERR_NOT_ENCRYPTED = "Private key not encrypted"; public static final String ERR_VERIFY_FAILED = "Certificate verification failed"; - private CertificatePasswordProvider passwordProvider; + + @Autowired + OpenSSLCertificateCreator openSSLCertificateCreator; + + @MockBean + CertificatePasswordProvider passwordProvider; @BeforeEach void setUp() {