我在 AWS 上运行 Tomcat。问题在于,当请求因异常而崩溃时,tomcat 不仅会发送 503,还会在 html 中发送异常堆栈跟踪,将我的源代码暴露给不需要查看它的查看器。
如何禁用此功能?
错误页面由简单的错误处理程序Error Report Valve 生成。您可以showReport通过将这些行添加到您server.xml的Host部分来隐藏堆栈跟踪 ( ) 以及服务器信息:
<Valve className="org.apache.catalina.valves.ErrorReportValve"
showReport="false"
showServerInfo="false" />
Run Code Online (Sandbox Code Playgroud)
另一种解决方案是为每个 HTTP 错误代码使用自定义的、用户友好的错误页面:
<error-page>
<error-code>500</error-code>
<location>/error500.jsp</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)
以及每个不同的Throwable:
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error-Exception.jsp</location>
</error-page>
<error-page>
<exception-type>java.sql.SQLException</exception-type>
<location>/error-SQLException.jsp</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)