Подтвердить что ты не робот

Как реализовать механизм аутентификации в 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 проверяет имя и пароль? Он не знает пользовательский объект?
  • Если это не так. Как реализовать стандартный механизм аутентификации

В конце концов спасибо вам за советы и мне нужны очень хорошие уроки или посоветуйте.

4b9b3361

Ответ 1

Как request.login проверить имя и пароль функции? Он не знает пользовательский объект?

request.login позволяет реализовать программную безопасность и проверяет предоставленное имя пользователя и пароль в области проверки пароля используемый механизмом входа в веб-контейнер, настроенным для ServletContext.

Другими словами, он делегирует проверку подлинности контейнеру, и эта проверка выполняется в области безопасности webapp. Это очень хорошая альтернатива аутентификации на основе FORM.

Аутентификация без формы имеет хороший screencast, показывающий эту функцию в действии. Если вы не хотите использовать область файлов, но область JDBC, отметьте это сообщение в блоге.

См. также