package learningspringboot;
import org.apache.catalina.connector.Connector;
import org.apache.coyote.http11.Http11NioProtocol;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.ResourceUtils;
import java.io.FileNotFoundException;
@Configuration
public class SecureTomcatConfiguration {
@Bean
public EmbeddedServletContainerFactory servletContainer()
throws FileNotFoundException {
TomcatEmbeddedServletContainerFactory f =
new TomcatEmbeddedServletContainerFactory();
f.addAdditionalTomcatConnectors(createSslConnector());
return f;
}
private Connector createSslConnector() throws FileNotFoundException {
Connector connector = new Connector(Http11NioProtocol.class.getName());
Http11NioProtocol protocol =
(Http11NioProtocol)connector.getProtocolHandler();
connector.setPort(8443);
connector.setSecure(true);
connector.setScheme("https");
protocol.setSSLEnabled(true);
protocol.setKeyAlias("learningspringboot");
protocol.setKeystorePass("password");
protocol.setKeystoreFile(ResourceUtils
.getFile("src/main/resources/tomcat.keystore")
.getAbsolutePath());
protocol.setSslProtocol("TLS");
return connector;
}
}