How config different tomcat connector server different resources

Viewed 101

In my spring boot application,i want create two tomcat connectors,one connector server https and one server http,i want http connector just server only health check url GET /api/healh,how should i config?

my codes like this:

@Component
public class TlsServerConfigure implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
    @Override
    public void customize(TomcatServletWebServerFactory factory) {
        TomcatConnectorCustomizer httpsCustomizer = connector -> {
            Http11NioProtocol httpProtocol = (Http11NioProtocol)connector.getProtocolHandler();
            httpProtocol.setAddress(getBindHost());
            httpProtocol.setPort(8090);
            httpProtocol.setSSLEnabled(true);
            httpProtocol.setKeystoreFile(getKeystoreFile());
            httpProtocol.setKeystorePass("123456");
            httpProtocol.setKeyAlias("tls-server");

            connector.setScheme("https");
        };

        factory.addConnectorCustomizers(httpsCustomizer);

        factory.addAdditionalTomcatConnectors(createHttpConnector());
    }

    private Connector createHttpConnector() {
        Connector connector = new Connector();
        connector.setPort(8080);
        connector.setScheme("http");
        return connector;
    }
}
1 Answers

Check the accepted answer for this: Use web.xml security constraints with Spring Boot

You might have to tweak it for your case.

<user-data-constraint>
    <transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>

The <transport-gurantee> tag handles HTTPS auto-redirect. You can set it NONE for your health API.

Related