0

我想将 401 错误响应发送回客户端,而 tomcat7.0.39 会覆盖它并发送 404。造成这种情况的原因似乎是 web.xml 中的错误页面定义。

<error-page>
    <error-code>404</error-code>
    <location>/errorPages/404.html</location>
</error-page>
<error-page>
    <error-code>403</error-code>
    <location>/errorPages/403.html</location>
</error-page>

注释掉所有错误映射会使问题消失。我猜当tomcat找不到映射到401的东西时,它会发回404 not found。这意味着如果存在错误映射,则它需要是“完整的”。这对我来说是一种奇怪的设计,并且会产生巨大的影响。如果您不知道一个 tomcat 上下文可能返回什么错误代码并且为 404 和 403 定制了错误页面,您可能需要提供所有 100 个 4XX 错误页面。这让为 tomcat 提供自定义错误页面并在全局 web.xml 中为它们提供映射的 PaaS 供应商的日子不好过。有没有人被这个咬过?如果您同意提供所有 4XX 错误代码是荒谬的,您将如何处理这种情况?

4

0 回答 0