Как реализовать механизм аутентификации в Java EE 6
Я пытаюсь изучить Java EE 6, и мне просто интересно, как реализовать механизм аутентификации в Java EE 6.
Вот пример аутентификации Java EE 6:
public void login() {
if (account.authenticate(name, password) == null) {
message = "Invalid user name or password!";
} else {
message = " Login successful";
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
try {
request.login(this.name, this.password);
Principal principal = FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal();
name = principal.getName();
} catch (ServletException e) {
// Handle unknown username/password in request.login().
context.addMessage(null, new FacesMessage("Unknown login"));
}
}
}
У меня есть следующие вопросы:
- Как функция request.login проверяет имя и пароль? Он не знает пользовательский объект?
- Если это не так. Как реализовать стандартный механизм аутентификации
В конце концов спасибо вам за советы и мне нужны очень хорошие уроки или посоветуйте.
Ответы
Ответ 1
Как request.login
проверить имя и пароль функции? Он не знает пользовательский объект?
request.login
позволяет реализовать программную безопасность и проверяет предоставленное имя пользователя и пароль в области проверки пароля используемый механизмом входа в веб-контейнер, настроенным для ServletContext.
Другими словами, он делегирует проверку подлинности контейнеру, и эта проверка выполняется в области безопасности webapp. Это очень хорошая альтернатива аутентификации на основе FORM.
Аутентификация без формы имеет хороший screencast, показывающий эту функцию в действии. Если вы не хотите использовать область файлов, но область JDBC, отметьте это сообщение в блоге.
См. также