Я пытаюсь перенаправить http на https через Catalina Connector в своем приложении Spring Boot. Если входящий запрос POST — «https», то он работает как положено. Но если мой входящий запрос POST имеет значение «http» и после перенаправления на «https» с помощью приведенного ниже кода, где-то он меняется на GET, из-за чего я получаю -
ПРЕДУПРЕЖДЕНИЕ 45028 --- [nio-8443-exec-8] o.s.web.servlet.PageNotFound: метод запроса «GET» не поддерживается
Ниже приведены методы моего класса @SpringBootApplication:
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
@Override
protected void postProcessContext(org.apache.catalina.Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
tomcat.addAdditionalTomcatConnectors(initiateHttpConnector());
return tomcat;
}
private Connector initiateHttpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(10024);
connector.setSecure(false);
connector.setRedirectPort(8443);
return connector;
}