Я пишу фильтр, который будет обрабатывать все задачи, связанные с аутентификацией. Мой фильтр является стандартным фильтром сервлетов, как показано ниже
@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
UserSession attribute = (UserSession)request.getSession().getAttribute("user_session_key");
if(attribute!=null && attribute.isValid())
{
//proceed as usual,
chain.doFilter(req, res);
return;
}
else
{
//means the user is not authenticated, so we must redirect him/her to the login page
((HttpServletResponse)res).sendRedirect("loginpage");
return;
}
}
Но когда я делаю это, я получаю исключение IllegalStateException, выданное Tomcat ResponseFacade. Как мне добиться этого в фильтре. Я читал в других потоках SO, что в TOmcat это проблема, поскольку объект ответа уже зафиксирован. Как мне пройти это?