У меня есть приложение 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
Может быть, у кого-то есть идея, как ее решить.Спасибо и хорошего дня: -)