2012-01-25 2 views
1

Я разрабатываю веб-приложение с 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? Там в любом случае?

Благодаря

Адем

ответ

2

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

"javax.servlet.forward.request_uri"

«javax .servlet.forward.query_string "

+0

Than ks для ответа. Это поставило меня на правильный путь, чтобы найти решение! – AdemC

+0

Можно ли добавить код, чтобы показать, как читать эти ключи? :) – simgineer

 Смежные вопросы

  • Нет связанных вопросов^_^