Как я узнаю, какая страница была запрошена до входа на страницу JSF 2?

Я занимаюсь разработкой веб-приложения с использованием GlassFish 3.1 и JSF 2.0 / EJB 3.1. Некоторые из моих страниц защищены. Защищенные URL-части определены в web.xml как URL-шаблоны. Эти страницы защищены через область безопасности, которая перенаправляет на страницу входа, также определенную в web.xml как login.xhtml, На login.xhtml мои поля ввода для имени пользователя и пароля связаны с компонентом поддержки сеанса, который выполняет:

ExternalContext ec = getExternalContext();
HttpServletRequest request = getHttpServletRequest(ec);
request.login(username, password);

Контейнер EJB отвечает за перенаправление всех входящих запросов в защищенные области с недопустимым сеансом на эту страницу.

Но, например, пользователь делает закладку на страницу index.xhtml и просил эту страницу. Сначала он должен войти через login.xhtml, Он идентифицирует себя, введя свое имя пользователя и пароль и нажав кнопку отправки.

Проблема в том, как определить целевой адрес, в данном случае index.html? Метод request.getRequestURI() шоу login.xhtml и не index.html, Я всегда могу перенаправить на index.xhtml, но что делать, если пользователь набрал xyz.xhtml? Там в любом случае?

Спасибо

Адем

1 ответ

Решение

Исходная информация о запросе хранится в объекте запроса со следующими ключами:

"Javax.servlet.forward.request_uri"

"Javax.servlet.forward.query_string"

Другие вопросы по тегам