Bonsoir;
J'ai une interface d'authentification,avec un bouton de connexion, comment je peux me connecter et afficher une autre interface?
.Code:<p:commandButton value="Connexion" action="#{personnelBean.login}"/>
Merci
Version imprimable
Bonsoir;
J'ai une interface d'authentification,avec un bouton de connexion, comment je peux me connecter et afficher une autre interface?
.Code:<p:commandButton value="Connexion" action="#{personnelBean.login}"/>
Merci
Il nous faudrait plus de détail sur la technologie que tu utilise. Tu peux par exemple utiliser Apache Shiro qui est un framework te permettant de gérer les ACL.
Sinon basiquement tu aura quelque chose du genre.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 @ManagedBean @RequestScope public class Connexion { private string login; private string password; // les accesseurs qui vont bien public void login() { if(userIsAllow(login, password) new User(login, password); return "toNextBean"; } else { FacesMessage msg = new FacesMessage(Message.SEVERITY_ERROR, "Identifiant incorrect!", "Connexion impossible, login ou mot de passe incorrect!"); FacesContext.getCurrentInstance().addMessage(null, msg); } } }
Ton object User est un bean en scope session comme cela il sera accessible de partout tant que l'utilisateur est connecté. Pour tester la connexion, le plus simple est d'utiliser un javax.servlet.Filter qui check si l'utilisateur est authentifié ou si il a les droits d'accès au fichier et le redirige sur une page de connexion si il n'est pas connecté. C'est a toi d'implémenter la methode userIsAllow. Typiquement tu auras un accès base de donnée pour vérifier que ton utilisateur est connu du système.
J'aurai bien mis plus de code. Mais écrire sur une tablette n'est pas facile.
Merci pour votre réponse.J'utilise jpa , jsf pour developper une application j2ee.Je cherche comment realiser en meme temps ation sur le bouton de connexion et une redirection vers une autre interface.
Dans ce cas, ma réponse précedente devrait te satisfaire. Il te faut juste logguer l'utilisateur dans ta méthode login puis retourner le lien faces-config que j'ai noté "toNextBean". Si tu n'a jamais utilisé de faces-config regarde les tuto sur le net, c'est très bien expliqué
Pour allez d'une interface à une autre vous devez déclencher dans votre méthode un return de type string ensuite configurer cette chaîne dans votre face-config.xml. c'est la balise navigation-rule
Je te propose ce bout de code à mettre dans ton bouton d'authentification
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public String doLogin() { String navigateTo = null; // login application logic // tester le login et le pwd User found = authenticationServiceLocal.authenticate(user.getLogin(),user.getPassword()); if (found != null) { user = found; loggedIn = true; if (user instanceof Admin) { navigateTo = "/pages/admin/home?faces-redirect=true"; } if (user instanceof Customer) { navigateTo = "/pages/customer/home?faces-redirect=true"; } } else { FacesContext.getCurrentInstance().addMessage("login_form:login_submit",new FacesMessage("Bad credentials!")); } return navigateTo; }