Перенаправление авторизации по истечении сеанса не работает при отправке формы JSF, страница остается прежней
Я использую JSF2. Я реализовал собственный сервлет Faces следующим образом:
public class MyFacesServletWrapper extends MyFacesServlet {
// ...
}
при этом я делаю некоторые проверки авторизации и отправляю перенаправление, когда пользователь не вошел в систему:
public void service(ServletRequest request, ServletResponse response) {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
if (...) {
String loginURL = req.getContextPath() + "/LoginPage.faces";
res.sendRedirect(loginURL);
}
}
Это работает, когда пользователь пытается перейти на другую страницу. Однако это не работает, когда форма JSF отправляется с помощью ссылки / кнопки команды JSF. ЛинияsendRedirect()
строка нажата и выполнена, исключение не выдается, но пользователь остается на той же странице. По сути, никаких визуальных изменений нет.
Почему это работает при навигации по страницам, а не при отправке формы?