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