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