我有一个实现了javax.servlet.Filter
接口的类,它对在会话中设置的令牌对象进行身份验证,如果令牌无效,我希望返回403禁止响应。因此,我有以下代码:
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throw ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
...
...
// Something has gone wrong with auth set the response code and
// continue with the chain
response.setStatus(403);
chain.doFilter(request, response);
}
我希望发生的是,当403响应代码出现时,web.xml中定义的
<error-page>
会被触发。<error-page>
<error-code>403</error-code>
<location>/forbidden.xhtml</location>
</error-page>
我可以看到浏览器开发工具的网络选项卡正确显示了403类型的响应。但是浏览器没有像我预期的那样重定向到错误页面,我在这里做错了什么?