Аутентификация пользовательских форм в JSF - PullRequest
1 голос
/ 23 мая 2010

Я новичок в JSF, и у меня есть пара вопросов, касающихся организации аутентификации пользователей там.

1) Как я могу перенаправить зарегистрированного пользователя на страницу приветствия (например, welcome.xhtml)?Я слышал об использовании фильтра или тега правила навигации, но я не нашел полноценного учебного пособия о том, как это работает.

2) Как мне сообщить серверу, что неавторизованные пользователи могут получить доступ не только к логинустраница, но также страница регистрации?Есть ли аналог для ASP.NET web.config tag или что-то вроде этого?

1 Ответ

2 голосов
/ 23 мая 2010

Решение для требования 1) уже достигнуто решением для требования 2).Вы просто позволяете пользователю перейти по этому URL напрямую.Если пользователь все-таки не вошел в систему, перенаправьте его на страницу регистрации / входа.Вот как это обычно работает.

Вам необходимо реализовать Filter, который прослушивает url-pattern, соответствующий защищенным страницам.Например, /secured/*, /protected/* и т. Д. В методе doFilter() вы просто проверяете наличие вошедшего в систему User в текущем сеансе и обрабатываете соответствующим образом.Вот базовый начальный пример:

if (((HttpServletRequest) request).getSession().getAttribute("user") == null) {
    // Not logged in, redirect to login page.
    response.sendRedirect("login.jsf");
} else {
    // Logged in, just continue with request.
    chain.doFilter(request, response);
}

Чтобы заставить его работать с JSF, просто знайте тот факт, что JSF хранит управляемые bean-объекты области действия в качестве атрибутов HttpSession с именем управляемого bean-компонента в качестве ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...