如何阻止spring-boot Embedded-undertw添加尾部斜杠

时间:2019-02-06 15:07:12

标签: java spring spring-boot undertow embedded-server

当我调用我的春季启动应用程序的上下文根目录“ localhost:8080 / api / players ”时,该上下文根目录在RestController方法中通过注释@GetMapping(path = {“ / “,”“}),始终始终重定向(httpstatus:307临时重定向)到“ localhost:8080 / api / players / ”,并在末尾添加斜杠。

我的应用程序上下文根目录确实是在春季启动的application.properties文件( server.servlet.context-path = / api / players 中定义的 / api / players >)

我已经尝试使用Embedded-tomcat,并且通过设置属性 server.tomcat.redirect-context-root = false

可以正常工作

有没有一种方法可以配置undertow以使其表现像tomcat?

1 个答案:

答案 0 :(得分:0)

仔细研究一下源代码,看起来相关的代码在ServletInitialHandler.java中,在请求是升级请求的情况下,它将发出307重定向状态代码...除非request是一个HTTP 2升级请求。尽管似乎有人尝试根据客户端的操作来避免重定向,但这似乎不是服务器可配置的。

查看您的HTTP请求,了解您的HTTP客户端是否实际发出了升级请求,然后考虑接受此事实,或者考虑更改客户端以发出不同类型的请求(可能是通过提出该请求),可能会更有价值发送HTTP2升级请求标头)。