Как реализовать механизм аутентификации в Java EE 6 - PullRequest
12 голосов
/ 04 июня 2010

Я пытаюсь изучить 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"));
        }
    }
}

У меня есть следующие вопросы:

  1. Как функция request.login проверяет имя и пароль? Не известно пользовательское лицо?
  2. Если это не правильно. Как реализовать стандартный механизм аутентификации

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

1 Ответ

15 голосов
/ 04 июня 2010

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

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

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

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

Смотри также

...