SpringBoot 2.0 использует http и https, но перенаправляет http на https через https-порт - PullRequest
0 голосов
/ 07 марта 2019

У меня есть приложение SpringBoot 2.0, которое использует http и https.Таким образом, на порту 9080 он обслуживает протокол http, а на порту 9443 https, который работает нормально.Единственное, что я хотел бы иметь - это перенаправление, если пользователь набирает, например: http://localhost:9443/e1

Подводя итог:

http://localhost:9080/e1 >> работаеткак и ожидалось.

https://localhost:9443/e1 >> работает как положено.

http://localhost:9443/e1 >> приводит к ошибке Bad Request. This combination of host and port requires TLS., но должна быть перенаправлена ​​на https://localhost:9443/e1.

@SpringBootApplication
@EnableScheduling
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    /* HTTP(S) configuration */

    @Value("${http.port}")
    private int httpPort;

    @Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        tomcat.addAdditionalTomcatConnectors(createStandardConnector());
        return tomcat;
    }

    private Connector createStandardConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setPort(httpPort);
        return connector;
    }
}

Мои application.properties

server.port=9443
http.port=9080
server.ssl.enabled=true
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=my_passowrd
server.ssl.key-alias=my_alias

Может быть, у кого-то есть идея, как ее решить.Спасибо и хорошего дня: -)

...