2010-02-22 3 views
4

Я ищу лучший способ, как я могу сделать аутентификацию пользователя в своем веб-проекте JSF. Я нашел this очень хороший пример от BalusC при переполнении запасов (кстати, спасибо BalusC). Но я не понимаю эту Систему.Лучшая практика аутентификации пользователей на JSF 2.0?

Я написал страницу регистрации. После регистрации пользователь входит в мою базу данных. Но кто может использовать j_security_check для проверки пользователя из моей базы данных?

В моем веб-проекте у меня нет сайта для пользователей и для не-пользователей. Когда пользователь регистрируется, поэтому он видит больше параметров, например, он может публиковать текст. Кто я могу это проверить? Могу ли я сохранить класс пользователя с UserData на входе и проверить:

if(user != null){ 
<h:inputText value="User Only Text" id="text" /> 
} 

Но я думаю, что этот способ не очень элегантно. Также мой вопрос - это лучший способ сделать вход пользователя в систему и показать действительный пользователь больше параметров на веб-странице, чем не пользователь.

Благодарим вас и извините за мой плохой английский.

ответ

3

Но как я могу использовать j_security_check для проверки пользователя из моей базы данных?

В этом документе article объясняется, как использовать аутентификацию на основе протокола HTTP FORM в сочетании с областями JDBC в Glassfish.

Что является лучшим способом сделать вход пользователя в систему и показать действительный пользователь больше параметров на веб-странице, чем не пользователь.

В принципе, вам нужно проверить, имеет ли пользователь соответствующую роль, чтобы увидеть «параметры». Посмотрите на ExternalContext#isUserInRole(String)

+0

Спасибо, я попробую. – ThreeFingerMark

+0

@Pascal: Хотели бы вы сказать что-то о том, когда хорошо перейти от безопасности на основе контейнеров к альтернативам, таким как сиро или другие? См. Более сосредоточенный вопрос здесь: http: //stackoverflow.com/questions/7782720/when-to-move-from-container-managed-security-to-alternatives-like-apache-shiro –

4

Просто объявите user в качестве управляемого компонента, управляемого сеансом, и используйте атрибут rendered компонента.

<h:inputText value="User Only Text" id="text" rendered="#{user != null}" /> 
+0

И как я могу сказать, что Пользователь Класс загружается в сеанс после регистрации? – ThreeFingerMark

+0

Либо использовать сеансовый бит 'UserManager' с' login() 'method и' user', чтобы вы могли использовать '# {userManager.user! = Null}' или выполняли 'externalContext.getSessionMap(). Put («пользователь», пользователь) 'в методе входа компонента. – BalusC

+0

Благодарим вас за подробный ответ. Я попробую это. – ThreeFingerMark

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