Как я узнаю, какая страница была запрошена до входа на страницу 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"