Как мне узнать, какая страница была запрошена перед входом на страницу JSF 2? - PullRequest
1 голос
/ 25 января 2012

Я занимаюсь разработкой веб-приложения с использованием 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 Ответ

2 голосов
/ 25 января 2012

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

"javax.servlet.forward.request_uri"

"javax.servlet.forward.query_string"

...