我遇到了一种非常奇怪的情况,我被重定向到以/结尾的应用程序 URL。这会导致 403 错误禁止。
我已经禁用了我使用的 apache 反向代理。我已经禁用了所有配置的 Spring Security 内容,所以我想说这一切都被丢弃了。 我调试 io.undertow.servlet.handlers handleRequest,它是 Wildfly 中 servlet 的入口点,我正在进入该方法:
public void handleRequest(final HttpServerExchange exchange) throws Exception {
一个
HttpServerExchange{ GET /app/
因此这意味着到/app/的重定向发生在调用任何 servlet 之前。
在 Firefox 开发者控制台中,我看到发出了 2 个请求,一个请求针对“app”,另一请求紧接着请求请求“/app/”,这是进入调试的请求。 在第一个请求(针对“app”)的响应 header 中,我得到:
Connection keep-alive Content-Length 0 Date Thu, 15 Nov 2018 11:23:06 GMT Location http://localhost:8080/app/ Server
WildFly/10 X-Powered-By Undertow/1
我知道 Wildfly/undertow 中的某些内容正在将我的初始请求重定向到/app/,但它会是什么?
有趣的是,在 Wildfly 处理第二个请求之前,我无法看到第一个请求的响应 header 。
非常感谢任何帮助。
最佳答案
看来这是 undertow 的一项功能...有人要求添加一个额外的/如果请求的内容根目录没有/并且它包含在版本 1.0.0.Beta5 中。
https://issues.jboss.org/browse/UNDERTOW-89
编辑:
第一个谜题解决了,添加了额外的“/”。 但为什么 403 是“禁止”呢?好吧,似乎有人忘记添加定义为欢迎页面的index.html。添加index.html后,一切按预期工作...
希望这可以帮助其他遇到同样问题的人。
关于java - Wildfly 不断重定向本地主机 :8080/app to localhost:8080/app/ending in 403 error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53318558/