我们有一个tomcat webapp,在一个有点正常的无效登录尝试期间,它会在疯狂的Spring SAML内部深处抛出一些可怕的SAML身份验证异常。异常未处理,用户使用
重定向到半有用的错误页面 <error-page>
<exception-type>com.test.SomeException</exception-type>
<location>/error.jsp</location>
</error-page>
它工作正常,除了tomcat仍然在catalina.out中记录未处理的异常。是否有一些简单的方法可以防止它使用strack跟踪(由日志监控软件等获取)来污染日志文件而不重构所有内容?无论如何,处理这个问题的正确方法是什么?
答案 0 :(得分:1)
您当然可以在Spring中处理异常,您不需要让它们冒泡到web.xml中的处理程序。请参阅this article中的一些示例。
答案 1 :(得分:0)
所以这就是我现在所得到的,不是理想的,而是有点作品:
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
try {
doFilterInternal(servletRequest, servletResponse, filterChain);
} catch (MyVerySpecificSamlAuthException ex) {
HttpServletRequest request = (HttpServletRequest)servletRequest;
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/general_error.jsp");
request.setAttribute(RequestDispatcher.ERROR_MESSAGE, ex.getMessage());
requestDispatcher.forward(request, servletResponse);
}
}