Можно ли настроить JSF 2.0 web.xml для перенаправления в другой корень контекста, если пользователь не вошел в систему?

Мне нужно реализовать безопасность для нового веб-приложения JSF, которое развертывается вместе с «устаревшим» приложением на основе JSP/сервлета в одном файле EAR (контейнером является WebLogic 11g). Прямо сейчас у меня есть JSF Phase Listener, который проверяет, есть ли у пользователя флаг в сеансе, указывающий, что он вошел в систему (обратите внимание, что «общие данные сеанса» включены, так что оба веб-приложения используют один и тот же сеанс HTTP) .

Я бы предпочел не использовать Phase Listener, если это возможно, и вместо этого указать в web.xml, чтобы перенаправить пользователя на страницу входа, если он не вошел в систему (именно так проверка была реализована в устаревшем веб-приложении). Однако, страница входа находится в «устаревшем» приложении в корне контекста, отличном от веб-приложения JSF. (обратите внимание, что устаревшее приложение работает в более старой версии контейнера сервлетов, чем новое веб-приложение JSF).

Есть ли способ настроить файл web.xml веб-приложения JSF, чтобы иметь возможность перенаправлять на страницу входа в первое веб-приложение, если они имеют разные корни контекста?


person BestPractices    schedule 03.05.2012    source источник
comment
В основном вы ищете единый вход (SSO). Конфигурация зависит от сервера. Я никогда не использовал Weblogic, поэтому я не могу ответить на этот вопрос сразу. Я предлагаю проверить это ключевое слово в его документации или в сочетании с Weblogic в Google чтобы получить некую отправную точку.   -  person BalusC    schedule 08.05.2012


Ответы (1)


Кажется, нет способа сделать это (перенаправить на страницу входа в другой корень контекста) в WebLogic 11g. Похоже, что решение Phase Listener является лучшим подходом.

Примечание. WebLogic 11g позволяет обмениваться информацией о сеансе и пользователе-участнике между веб-приложениями, развернутыми в одном EAR, но не поддерживает указание URL-адреса страницы входа, которая находится в корне контекста, отличном от корневого контекста текущего веб-приложения, в котором находится файл web.xml. . Поэтому необходимо решение, похожее на сервлет-фильтр, которое может выполнять перенаправление на страницу входа в другое веб-приложение.

person BestPractices    schedule 08.05.2012