gpt4 book ai didi

spring-mvc - Spring Boot "Request method ' GET'不支持”,同时通过 Catalina Connector 将 POST 请求重定向到 https 端口

转载 作者:太空宇宙 更新时间:2023-11-03 12:49:59 24 4
gpt4 key购买 nike

我正在尝试通过我的 Spring Boot 应用程序中的 Catalina 连接器将 http 重定向到 https。如果传入的 POST 请求是“https”,则它按预期工作。但是,如果我传入的 POST 请求是“http”,并且在通过下面的代码重定向到“https”之后,它会在某处更改为 GET,因此我得到了 -

WARN 45028 --- [nio-8443-exec-8] o.s.web.servlet.PageNotFound : Request method 'GET' not supported

下面是我的@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;
}

最佳答案

postProcessContext() 中添加 collection.addMethod(DEFAULT_PROTOCOL); 这一行从代码中覆盖方法。它适用于所有 HTTP 请求方法,如 POST、PUT、DELETE、GET 等。

关于spring-mvc - Spring Boot "Request method ' GET'不支持”,同时通过 Catalina Connector 将 POST 请求重定向到 https 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39528694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com