Bonjour
j'ai à faire une interface d'authentification par login et password, mais ça na pas marché avec moi voici mon code:
Couche DAO:
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;
 }
 
}
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
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";
	}
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
<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}" />
Il me rend une erreur sur ma methode Connect déclarée dans mon Bean.
Aussi je veux bien que si mon compte est faux, il me rend un message sur la meme page: "login ou password faux"