2010-05-23 4 views
1

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

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

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

+1

Ответ зависит от того, как именно вы аутентифицируете своих пользователей. Управление контейнером или webapp (доморощенные)? – BalusC

+0

Webapp. Моя задача - создать образец сайта в JSF с возможностью регистрации и входа пользователя на страницу «helloworld» с пользовательскими данными, хранящимися в базе данных mysql. – Proton

ответ

2

Решение для требования 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 хранит сеанс контекстных управляемые бобов как атрибуты HttpSession с управляемым именем боба в качестве ключа.

+0

Если вы, как я, вы ищете полный пример «Фильтр», посмотрите на эту ссылку: http://thierrywasyl.wordpress.com/2009/06/22/create-your-own-filter-in-jsf. В статье показано, как легко создать сценарий аутентификации с помощью JSF. – Stephan

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