Bonjour,
j'essaye de gerer l'authentification avec jsf. J'utilise glassfish et JPA. Lorsque l'application est lancé, ya l'interface de connexion et si les login et mot de passe saisis par l'utilisateur existent bien dans mla base, il est redirigé vers la page d'accueil. Là ya un problème avec mon code je ne sais pas lequel vu que je suis nouvelle en jsf. si vous pouvez me donner un coup de main ça serai bien. voici les codes respectifs de mon bean, de mon fichier faces-config.xml et de ma vue .
loginBean.java
faces-config.xmlCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 package com.sirhbimao.beans; import com.sirhbimao.dao.AgentDao; import com.sirhbimao.entities.Agent; import javax.ejb.EJB; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import javax.faces.context.FacesContext; @SessionScoped @ManagedBean public class LoginBean extends AbstractBaseBean{ private static final long serialVersionUID = -8639967661520563148L; private Agent agent; // Injection de notre EJB (Session Bean Stateless) @EJB private AgentDao agentDao; // Initialisation de l'entité agent public LoginBean() { agent = new Agent(); } //Mise en place d'un getter pour l'agent public Agent getAgent() { return agent; } // Méthode d'action appelée lors du clic sur le bouton du formulaire // de connexion public String Logon() throws Exception{ Agent ag; try{ ag= agentDao.trouver(agent.getLogin(),agent.getPassword()); if(ag!=null){ getSession().setAttribute(ACCESS_ALLOWED, true); getSession().setAttribute("login", agent.getLogin()); FacesMessage message = new FacesMessage( "Connexion réussie!" ); FacesContext.getCurrentInstance().addMessage( null, message ); return SUCCESS; } }catch(Exception e){ } return INPUT; } }
index.xhtmlCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 <faces-config version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"> <navigation-rule> <from-view-id>*</from-view-id> <navigation-case> <from-outcome>input</from-outcome> <to-view-id>/index.xhtml</to-view-id> </navigation-case> <navigation-case> <from-outcome>success</from-outcome> <to-view-id>/admin_accueil.xhtml</to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <navigation-case> <from-action>#{loginBean.logon}</from-action> <from-outcome>success</from-outcome> <to-view-id>/admin_accueil.xhtml</to-view-id> </navigation-case> <navigation-case> <from-action>#{loginBean.logon}</from-action> <from-outcome>input</from-outcome> <to-view-id>/index.xhtml</to-view-id> </navigation-case> </navigation-rule> </faces-config>
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 <h:form id="formulaire"> <fieldset> <legend>Authentification</legend> <pre> <h:outputLabel for="login"> Login: <span class="requis"> * </span></h:outputLabel> <h:inputText id="login" value="#{agentBean.agent.login}" size="20" maxlength="60" > <f:ajax event="blur" render="loginMessage" /> </h:inputText> <h:message id="loginMessage" for="login" errorClass="erreur" /> <br /> <h:outputLabel for="motdepasse"> Mot de passe <span class="requis">*</span></h:outputLabel> <h:inputSecret id="motdepasse" value="#{agentBean.agent.password}" size="20" maxlength="20" > <f:ajax event="blur" render="motDePasseMessage" /> </h:inputSecret> <h:message id="motDePasseMessage" for="motdepasse" errorClass="erreur" /> <br /> <h:messages globalOnly="true" infoClass="info" /> <h:commandButton value="Connexion" action="#{loginBean.logon}" styleClass="sansLabel" > </h:commandButton> <br /> </pre> </fieldset> </h:form>