Я в настоящее время стучу головой, где поставить общую логику для некоторых материалов авторизации в моем Java EE 6/JSF 2 webapp: У меня есть требование, чтобы все запросы, которые поставляются с конкретный файл cookie должен быть перенаправлен на другую страницу.где поместить фильтр как логику в JSF2
Я рассмотрел 3 решения:
1) использовать фильтр сервлета 3.0 (@WebFilter) это работало, я также мог бы придать управляемые боб там, но управляемые компоненты требуют доступа к граням externalContext, который во время фильтр вызова еще не был создан, так что я получил NPE зовёт управляемые бобы
2) используют фазовый приемник это чувствует себя неловко, потому что фаза слушатель не может быть компонентом CDI и поэтому не может вводить другие компоненты (кроме эль-оценки); фазаListener для меня чувствует к техническому, чтобы вставить в него навигационную логику.
3) в пластах 2.0 я мог бы использоваться «действия страницы» для вещей, как это, но мне кажется, что эта концепция не превратить его в JSF 2.0
в шве это выглядело как:
<page view-id="/admin/*.jsf">
<action execute="#{authenticator.checkAccess()}" />
</page>
Действительно ли это, что JSF 2.0 не имеет концепции для выполнения «логики контроллера» перед визуализацией страницы?
привет, спасибо за ваш быстрый ответ, не знал об этой функции! Итак, если я хочу быть уверенным, что все мои jsf-страницы перехвачены, единственным способом было бы гарантировать, что все страницы jsf включают этот фрагмент кода (например, через композицию страницы)? – fujan
Нет, это не единственный способ. Если бы я был вами, я бы исследовал дальше в опции filter - поскольку это стандартное требование для многих JSF-приложений, наверняка должно быть сложное решение для вашего вопроса. –