fix: Use correct formatting for alt_names

This commit is contained in:
Magnus Leßmann (@MarkL4YG) 2024-11-17 21:05:43 +01:00
parent f870fc1ac6
commit 9ec619a380

View file

@ -13,6 +13,8 @@ import java.util.Optional;
import java.util.concurrent.ExecutionException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.springframework.lang.Nullable;
import org.springframework.stereotype.Service;
@ -157,11 +159,15 @@ public class OpenSSLCertificateCreator {
.map(CertificateRequestExtension::getAlternativeNames)
.orElse(List.of());
if (!altNames.isEmpty()) {
String altNamesContent = String.join("\n", altNames);
extContent = extContent.replaceAll("\\[alt_names]\n?, ", "[alt_names]\n" + altNamesContent);
AtomicInteger counter = new AtomicInteger(1);
String altNamesContent = altNames
.stream()
.map(name -> "DNS.%d = %s".formatted(counter.getAndIncrement(), name))
.collect(Collectors.joining("\n"));
extContent = extContent.replaceAll("\\[alt_names]\n?", "[alt_names]\n" + altNamesContent);
} else {
extContent = extContent.replaceAll("\\s*subjectAltName\\s+=\\s+@alt_names\n?", "");
extContent = extContent.replaceAll("\\[alt_names]\n?, ", "");
extContent = extContent.replaceAll("\\[alt_names]\n?", "");
}
log.debug("Writing extension file content: \n {}", extContent);