2010-05-23 4 views
1

Je suis novice chez JSF et j'ai reçu quelques questions concernant l'organisation de l'authentification des utilisateurs.Authentification des formulaires utilisateur dans JSF

1) Comment puis-je rediriger l'utilisateur enregistré vers une page d'accueil (par exemple welcome.xhtml)? J'ai entendu parler de l'utilisation de la balise Filter ou de la règle de navigation, mais je n'ai pas trouvé de tutoriel complet sur son fonctionnement.

2) Comment puis-je dire au serveur que des utilisateurs non autorisés peuvent accéder non seulement à la page de connexion, mais aussi à la page d'inscription? Existe-t-il un tag ASP.NET web.config ou quelque chose comme ça?

+1

La réponse dépend de la façon dont vous authentifiez vos utilisateurs. Conteneur géré ou webapp (homegrown) géré? – BalusC

+0

Webapp. Ma tâche est simplement de créer un site d'exemple dans JSF avec la possibilité d'enregistrer et de connecter un utilisateur à une page "helloworld" avec des données utilisateur stockées dans la base de données mysql. – Proton

Répondre

2

La solution pour l'exigence 1) est déjà obtenue par la solution pour l'exigence 2). Vous laissez simplement l'utilisateur aller directement à cette URL. Si l'utilisateur n'est pas encore connecté, redirigez-le vers la page de registre/connexion. C'est comme ça que ça fonctionne normalement.

Vous devez implémenter un Filter qui écoute sur un url-pattern correspondant aux pages sécurisées. Par exemple. /secured/*, /protected/*, etc. Dans la méthode doFilter(), il vous suffit de vérifier la présence de la connexion User dans la session en cours et de gérer en conséquence. Voici un exemple de coup d'envoi de base:

if (((HttpServletRequest) request).getSession().getAttribute("user") == null) { 
    // Not logged in, redirect to login page. 
    response.sendRedirect("login.jsf"); 
} else { 
    // Logged in, just continue with request. 
    chain.doFilter(request, response); 
} 

Pour obtenir de travailler avec JSF, sachez simplement le fait que la session stocke JSF scope gérés haricots comme des attributs du HttpSession avec le nom géré de haricots comme la clé.

+0

Si comme moi vous êtes à la recherche d'un exemple complet de 'Filter', jetez un oeil à ce lien: http://thierrywasyl.wordpress.com/2009/06/22/create-your-own-filter-in-jsf. L'article montre comment créer facilement un scénario d'authentification avec JSF. – Stephan

Questions connexes