Этот вопрос связан с моим другим вопросом "Как перенаправить на страницу входа, когда срок действия сессии истек в веб-приложении Java?". Ниже я пытаюсь сделать следующее:
- У меня есть веб-приложение JSF, работающее на JBoss AS 5
- Когда пользователь неактивен, скажем, 15 минут, мне нужно выйти из системы и перенаправить его на страницу входа в систему, если он пытается использовать приложение после истечения срока действия сессии.
- Итак, как было предложено в JSF Logout and Redirect ', я внедрил фильтр, который проверяет условие с истекшим сроком сессии и перенаправляет пользователь на странице session-timed-out.jsp, если сеанс истек.
- Я добавил SessionExpiryCheckFilter поверх всех других определений фильтров в web.xml, так что проверка срока действия моего сеанса всегда будет иметь первый хит.
Теперь идет вызов , с которым я сталкиваюсь. Поскольку я использую JBoss AS, когда сеанс истек, JBoss автоматически перенаправляет меня на страницу входа (обратите внимание, что фильтр проверки истечения срока действия сеанса не вызывается). Итак, после входа в систему мой SessionExpiryCheckFilter перехватывает запрос, и он видит, что сеанс доступен. Но это исключает исключение javax.faces.application.ViewExpiredException: viewId:/mypage.faces - View /mypage.faces could not be restored.
Кто-нибудь сталкивался с этой проблемой раньше? Любые идеи для решения этой проблемы?