Я разрабатываю веб-приложение с GlassFish 3.1 и JSF 2.0/EJB 3.1. Некоторые из моих страниц защищены. Защищенные URL-части определены в web.xml
как URL-шаблоны. Эти страницы защищены через область безопасности, которая перенаправляет на страницу входа, также определенную в web.xml
, как login.xhtml
. На login.xhtml
мои inputfields для имени пользователя и пароля подключены к сеансу область действия бэк боб, который выполняет:Как узнать, какая страница была запрошена до входа на страницу JSF 2
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
? Там в любом случае?
Благодаря
Адем
Than ks для ответа. Это поставило меня на правильный путь, чтобы найти решение! – AdemC
Можно ли добавить код, чтобы показать, как читать эти ключи? :) – simgineer