【发布时间】:2017-01-24 12:25:47
【问题描述】:
我正在尝试通过我的 Spring Boot 应用程序中的 Catalina 连接器将 http 重定向到 https。如果传入的 POST 请求是“https”,那么它按预期工作。但是,如果我传入的 POST 请求是“http”并且在通过下面的代码重定向到“https”之后,它会在某个地方更改为 GET,因为我得到了 -
WARN 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;
}
【问题讨论】:
-
这个你搞定了吗?我有同样的问题。
标签: spring-mvc ssl https catalina embedded-tomcat-7