【问题标题】:Tomcat error page issueTomcat错误页面问题
【发布时间】:2015-07-15 06:42:41
【问题描述】:

我已将我的 tomcat6 web.xml 配置为通过添加这些行来显示我的自定义错误页面,described here

 <error-page>

<error-code>500</error-code>

<location>/web_server_error.html</location>

</error-page>

<error-page>

<error-code>404</error-code>

<location>/web_server_error.html</location>

</error-page>

我还了解到,对于每个部署的应用程序,我需要进行与 ROOT 相同的配置,这很好。

我的问题是我有一个简单的文件夹webapps/docs。如果我尝试访问此文件夹中存在的任何文件,例如 /docs/mypage.html,我可以完美访问它,但如果文件或目录不存在于文件夹中,如 docs/faq/,我需要相同的错误页面,但 tomcat 显示其 404错误页面。

实际上我需要它,因为我的客户在漏洞列表中提到了这一点,即在这种情况下,攻击者可以了解文件结构,因此我们需要在所有错误上显示一个页面。

我需要知道,因为它是一个简单的文件夹,而不是任何应用程序,如何处理这个问题,还是简单的不可能?

非常感谢任何帮助。

【问题讨论】:

  • [多个错误码配置web.xml][1][1]:stackoverflow.com/questions/2237434/…
  • @ravi thnx 回复,但实际上我的问题并没有提到那里,我对 webapps 中的简单文件夹有问题,因此那里没有 web.xml...

标签: java tomcat servlets internal-server-error


【解决方案1】:

这在 Tomcat 6 中是不可能的。Servlet 3.0 指定了全局错误页面,但 Tomcat 6 实现了 Servlet 2.5。

但是可以通过编写ErrorReportValve 类并注册它来“解决”。但请注意:这是 Tomcat 特有的!

【讨论】:

  • thnx 回复,可能是我错了,但请指出我可以在我的应用程序中编写这个类,然后我可以处理错误?但是如果我没有任何应用程序,它只是一个文件夹
  • 那么我建议你切换到 tomcat 7 ;)
  • 实际上我在 tomcat7 和 tomcat6 中都测试了这个 :) 有同样的问题,
  • 在“webapps/ROOT/WEB-INF/web.xml”中?
  • 是的,我已经提到我已经对 tomcat 的 ROOT 进行了更改,并将我的错误页面放在那里,如果我输入任何错误的应用程序名称并得到 404,它就可以工作,但是当 webapps 中存在任何文件夹时,比方说 webapps/docs,但在其中我请求了任何不存在的文件或目录,而不是它显示的 tomcat 的页面,该页面暴露了文件结构
【解决方案2】:

该文件夹不是 Web 应用程序。因此您的配置不起作用!

【讨论】:

  • 谢谢回复,是的,它非常简单,但是当我有一个文件夹时如何处理这个问题,或者根本不可能?
猜你喜欢
  • 2023-01-14
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 2012-08-03
  • 1970-01-01
  • 1970-01-01
  • 2010-09-19
相关资源
最近更新 更多