Bonjour
j'ai à faire une interface d'authentification par login et password, mais ça na pas marché avec moivoici mon code:
Couche DAO:
Mon Bean, à appeler via ma page JSP:
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 @Stateless public class UserDAO implements UserDAORemote, UserDAOLocal { @PersistenceContext EntityManager em; public UserDAO() { } public User connect(String username, String password){ Query query=em.createQuery("select u from User u where u.username=:username and u.password=:password"); query.setParameter("username", username); query.setParameter("password", password); User result=(User) query.getSingleResult(); if(result!=null){ return result; } return null; } public List<User> getListUsers(){ Query query=em.createQuery("select u from User u"); List<User> result=query.getResultList(); return result; } }
Ma page JSP:
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 public class UserBean { private User currentUser = new User(); private UserDAORemote userdaoremote; private boolean logged=false; public User getCurrentUser() { return currentUser; } public void setCurrentUser(User currentUser) { this.currentUser = currentUser; } public String connect() { User result = userdaoremote.connect(currentUser.getUsername(), currentUser.getPassword()); if (result != null) { currentUser = result; return "authentifie"; } FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("login ou mot de passe faux")); return null; } public String disconnect(){ setCurrentUser(new User()); logged=false; return "acceuil"; }
Il me rend une erreur sur ma methode Connect déclarée dans mon Bean.
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 <h:panelGrid border="1" columns="2"> <h:outputText value="Nom d'utilisateur *" ></h:outputText> <h:inputText id="userId" value="#{userBean.currentUser.username}" required="true" requiredMessage="veuillez saisir votre login"> <f:validateLength maximum="10" minimum="3"/> </h:inputText> <h:outputText value="Mot de passe *"></h:outputText> <h:inputSecret id="passwordId" value="#{userBean.currentUser.password}" required="true" requiredMessage="login ou password faux"> <f:validateLength maximum="10" minimum="3"/> </h:inputSecret> <h:message style="color: red; text-decoration: overline" id="firstNameError" for="userId"/> <h:message style="color: red; text-decoration: overline" id="passwordError" for="passwordId"/> </h:panelGrid> <h:commandButton value="Connecter" action="#{userBean.connect}" />
Aussi je veux bien que si mon compte est faux, il me rend un message sur la meme page: "login ou password faux"
Partager