我試圖通過我的Spring Boot應用程序中的Catalina連接器將http重定向到https。如果傳入的POST請求是「https」,則它按預期工作。但是,如果我的傳入POST請求是「http」,並通過下面的代碼重定向到「https」後,某處它正在變爲GET,因此我得到 -Spring Boot通過Catalina連接器將POST請求重定向到https端口時,請求方法GET不支持
WARN 45028 --- [nio -8443-EXEC-8] osweb.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;
}
你有沒有想到這一個?我有同樣的問題。 – juventus