Comment implémenter le mécanisme d'authentification dans Java EE 6


J'essaie d'apprendre Java EE 6 et je me demande simplement comment implémenter le mécanisme d'authentification dans Java EE 6.

Voici l'exemple d'authentification 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"));
        }
    }
}

J'ai une question suivante:

  1. Comment demander.fonction de connexion vérifier le nom et le mot de passe? Ce n'est pas une entité utilisateur connue?
  2. Si ce n'est pas la bonne façon. Comment mettre en œuvre le mécanisme d'authentification standart

En enfin merci pour votre conseil et j'ai besoin d'un très bon des tutoriels ou de conseiller.

Author: Zeck, 2010-06-04

1 answers

Comment request.login fonction vérifier le nom et le mot de passe? Ce n'est pas une entité utilisateur connue?

Le request.login permet d'implémenter la sécurité programmatique et valide le nom d'utilisateur et le mot de passe fournis dans le domainepassword validation realm utilisé par le mécanisme de connexion du conteneur Web configuré pour le ServletContext .

En d'autres termes, il délègue la vérification d'authentification au conteneur et cette vérification est effectuée par rapport au domaine de sécurité de l'application Web. C'est une très belle alternative à l'authentification basée sur un FORMULAIRE.

L'Authentification Sans la Forme a eu une belle screencast montrant cette fonctionnalité en action. Si vous ne voulez pas utiliser un domaine de fichier mais un domaine JDBC, vérifiez cet article de blog .

Voir aussi

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