いくつかのフラグに基づいて初期化EmbeddedServletContainerFactory SpringブートアプリケーションへのJVM引数キーストアへSpringboot:私は、私も私のように渡していたキーストアへのパスワードを、(テスト目的のために、私はベース64で、それをコードしています)を暗号化したい前記スプリングブートアプリケーションでSSLを実装したい
このパスワードは、後で復号化(現在64のデコードをベース用)とオンザフライでEmbeddedServletContainerFactoryを形成するために、以下のように使用されます。
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory();
tomcatFactory.setSsl(createSsl());
tomcatFactory.setPort(sslConfig.getHttpsPort());
return tomcatFactory;
}
private Ssl createSsl() {
Ssl ssl = new Ssl();
try {
ssl.setKeyStore("/path/to/keystore.pkcs12");
ssl.setKeyStorePassword(new String(Base64.getDecoder().decode(sslConfig.getKeyPassword())));
ssl.setKeyAlias(sslConfig.getKeyAlias());
} catch (Exception e) {
logger.error(e.getMessage());
}
return ssl;
}
JVM引数:
-Dtls.keyAlias=tomcat
-Dtls.key-store-password=cGFzc3dvcmQ=
JVM引数から取得したエイリアスとパスワードを保存するためのPOJO:上記の設定は絶対に正常に動作している
@Component
public class SSLConfig {
@Value("#{systemProperties['tls.keyAlias']}")
public String keyAlias;
@Value("#{systemProperties['tls.key-store-password']}")
private String keyPassword;
....getters n setters
}
。
ここでは、JVMの引数に渡されるフラグに基づいてこれを達成したいと思います。これは、コントロールが上記のロジックを通過するように設定することです。そうでなければデフォルトの方法で動作するはずです。
誰かがこれについてガイドできますか?