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.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.xhtml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Partager