2
我有一个类实现了javax.servlet.Filter
,它对会话中设置的令牌对象进行了一些验证,如果令牌变得无效我希望返回403禁止响应。所以,我有类似在Servlet过滤器中设置响应代码
@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);
}
我想接着发生的是在web.xml中定义触发对403响应代码<error-page>
<error-page>
<error-code>403</error-code>
<location>/forbidden.xhtml</location>
</error-page>
我可以看到网络选项卡浏览器开发工具正确显示403类型的响应。但浏览器不会像我期待的那样重定向到错误页面,我在这里做错了什么?
这个工作对我非常好,我使用自定义错误消息发送回一个响应到UI。 \t \t \t \t \t 赶上(例外五){ log.error(的String.format( “异常发生在令牌验证:%s” 时,e.getMessage())); ((HttpServletResponse)响应).sendError(401,AuthzError.INVALIDAUTHTOKEN.getDescription()); \t return; } \t \t \t \t \t \t \t \t \t} – Sindhu