chore: Refactor services
- OpenSSL and Truststore services should not be Beans by default - Instead, they are using auto configurations to register the beans
This commit is contained in:
parent
8856d8773e
commit
938101db8f
7 changed files with 63 additions and 9 deletions
|
@ -0,0 +1,26 @@
|
|||
package de.mlessmann.certassist.keystore;
|
||||
|
||||
import de.mlessmann.certassist.openssl.CertificatePasswordProvider;
|
||||
import de.mlessmann.certassist.openssl.OpenSSLCertificateCreator;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
public class AutoBootKeyStoreManagement {
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(KeyStoreManager.class)
|
||||
public KeyStoreManager keystoreProvider(
|
||||
OpenSSLCertificateCreator certificateCreator,
|
||||
CertificatePasswordProvider passwordProvider
|
||||
) {
|
||||
return new KeyStoreManager(certificateCreator, passwordProvider);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(TruststoreManager.class)
|
||||
public TruststoreManager truststoreProvider() {
|
||||
return new TruststoreManager();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package de.mlessmann.certassist.openssl;
|
||||
|
||||
import de.mlessmann.certassist.service.ExecutableResolver;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
public class AutoBootOpenSSL {
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(CertificatePasswordProvider.class)
|
||||
public CertificatePasswordProvider usageProvider() {
|
||||
return new InMemoryCertificatePasswordProvider();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(CertificatePasswordProvider.class)
|
||||
public OpenSSLCertificateCreator openSSLProvider(
|
||||
ExecutableResolver executableResolver,
|
||||
CertificatePasswordProvider passwordProvider,
|
||||
CertificateProvider usageProvider
|
||||
) {
|
||||
return new OpenSSLCertificateCreator(executableResolver, passwordProvider, usageProvider);
|
||||
}
|
||||
}
|
|
@ -1,15 +1,13 @@
|
|||
package de.mlessmann.certassist.service;
|
||||
package de.mlessmann.certassist.openssl;
|
||||
|
||||
import de.mlessmann.certassist.openssl.CertificatePasswordProvider;
|
||||
import de.mlessmann.certassist.service.PassphraseService;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.stereotype.Service;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Service
|
||||
@ConditionalOnMissingBean(CertificatePasswordProvider.class)
|
||||
@Slf4j
|
||||
public class InMemoryCertificatePasswordProvider implements CertificatePasswordProvider {
|
||||
|
||||
private final Map<String, String> passwords = new ConcurrentHashMap<>();
|
||||
|
@ -22,11 +20,13 @@ public class InMemoryCertificatePasswordProvider implements CertificatePasswordP
|
|||
|
||||
@Override
|
||||
public String getPasswordFor(String certificateFingerprint) {
|
||||
log.trace("Getting password for certificate fingerprint: {}", certificateFingerprint);
|
||||
return Optional.ofNullable(passwords.get(certificateFingerprint)).orElseThrow();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPasswordFor(String certificateFingerprint, String password) {
|
||||
log.trace("Setting password for certificate fingerprint: {}", certificateFingerprint);
|
||||
Objects.requireNonNull(certificateFingerprint);
|
||||
Objects.requireNonNull(password);
|
||||
passwords.put(certificateFingerprint, password);
|
|
@ -5,11 +5,11 @@ import static java.util.concurrent.TimeUnit.*;
|
|||
import static org.slf4j.LoggerFactory.getLogger;
|
||||
|
||||
import de.mlessmann.certassist.DeleteRecursiveFileVisitor;
|
||||
import de.mlessmann.certassist.ExecutableResolver;
|
||||
import de.mlessmann.certassist.except.CommandLineOperationException;
|
||||
import de.mlessmann.certassist.except.UnresolvableCLIDependency;
|
||||
import de.mlessmann.certassist.openssl.CertificateRequest.RequestType;
|
||||
import de.mlessmann.certassist.openssl.CertificateSubject.CertificateSubjectBuilder;
|
||||
import de.mlessmann.certassist.service.ExecutableResolver;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package de.mlessmann.certassist;
|
||||
package de.mlessmann.certassist.service;
|
||||
|
||||
import de.mlessmann.certassist.except.UnresolvableCLIDependency;
|
||||
import java.io.File;
|
|
@ -6,8 +6,9 @@ import de.mlessmann.certassist.keystore.KeyStoreManager;
|
|||
import de.mlessmann.certassist.keystore.TruststoreManager;
|
||||
import de.mlessmann.certassist.openssl.CertificateProvider;
|
||||
import de.mlessmann.certassist.openssl.CertificateUsage;
|
||||
import de.mlessmann.certassist.openssl.InMemoryCertificatePasswordProvider;
|
||||
import de.mlessmann.certassist.openssl.OpenSSLCertificateCreator;
|
||||
import de.mlessmann.certassist.service.InMemoryCertificatePasswordProvider;
|
||||
import de.mlessmann.certassist.service.ExecutableResolver;
|
||||
import java.io.IOException;
|
||||
import java.net.ServerSocket;
|
||||
import java.nio.file.Path;
|
||||
|
|
|
@ -5,6 +5,7 @@ import static org.mockito.Mockito.*;
|
|||
|
||||
import de.mlessmann.certassist.openssl.*;
|
||||
import de.mlessmann.certassist.openssl.CertificateRequest.RequestType;
|
||||
import de.mlessmann.certassist.service.ExecutableResolver;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Objects;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
|
|
Loading…
Add table
Reference in a new issue