Come implementare il meccanismo di autenticazione in Java EE 6


Sto cercando di imparare Java EE 6 e mi chiedo solo come implementare il meccanismo di autenticazione in Java EE 6.

Ecco l'esempio di autenticazione 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"));
        }
    }
}

Ho le seguenti domande:

  1. Come richiesta.funzione di login controllare il nome e la password? Non è un'entità utente conosciuta?
  2. Se non è il modo giusto. Come implementare il meccanismo di autenticazione standard

In finalmente grazie per il vostro consiglio e ho bisogno di un ottimo tutorial o consigliare.

Author: Zeck, 2010-06-04

1 answers

In che modo la funzione request.login controlla nome e password? Non è un'entità utente conosciuta?

Il request.login consente di implementare la sicurezza programmatica e convalida il nome utente e la password forniti nel dominio di convalida della password utilizzato dal meccanismo di accesso del contenitore Web configurato per ServletContext .

In altre parole, delega il controllo di autenticazione al contenitore e questo controllo viene eseguito rispetto al reame di sicurezza della webapp. Questa è un'alternativa molto bella all'autenticazione basata su MODULI.

Autenticazione senza il modulo ha avuto un bel screencast che mostra questa funzione in azione. Se non si desidera utilizzare un reame di file ma un reame JDBC, controllare questo post del blog .

Vedi anche

 15
Author: Pascal Thivent, 2012-07-28 00:38:54