Есть ли способ запустить приложение Spring Boot (runnable war), чтобы он прослушивал два порта - один с SSL и один без SSL. Я использую встроенный Tomcat 8.Запуск приложения Spring Boot (встроенный Tomcat) с SSL и незашифрованным одновременно
SSL в настоящее время сконфигурирован с использованием
@Bean
@Profile('tls')
EmbeddedServletContainerCustomizer servletContainerCustomizer()
throws Exception {
new EmbeddedServletContainerCustomizer() {
@Override
public void customize (ConfigurableEmbeddedServletContainer container) {
TomcatEmbeddedServletContainerFactory tomcat = (TomcatEmbeddedServletContainerFactory) container
tomcat.addConnectorCustomizers (
new TomcatConnectorCustomizer() {
@Override
public void customize (Connector connector) {
connector.setPort (Integer.parseInt (retrieveRequiredSpringProperty ('ssl.connection.port')))
connector.setSecure (true)
connector.setScheme ('https')
connector.setProtocol (retrieveSpringPropertyOrSpecified ('ssl.connection.protocol', 'HTTP/1.1'))
Http11NioProtocol proto = (Http11NioProtocol) connector.getProtocolHandler()
proto.setSSLEnabled (true)
proto.setKeystoreFile (retrieveRequiredSpringProperty ('ssl.protocol.keystore.file'))
proto.setKeystorePass (retrieveRequiredSpringProperty ('ssl.protocol.keystore.password'))
proto.setKeyPass (retrieveSpringPropertyOrSpecified ('ssl.protocol.keystore.cert.password', null))
proto.setKeystoreType ('JKS')
proto.setKeyAlias (retrieveRequiredSpringProperty ('ssl.protocol.keystore.cert.name'))
proto.setSslProtocol ('TLS')
proto.setClientAuth ('false')
}
}
)
}
}
}
Я попытался с использованием нескольких TomcatConnectorCustomizer
сек, но последний в списке, кажется, перезаписать, а не аддитивным.
Любые предложения приветствуются, как всегда!