salut a tous. au moment je d'enregistrer les informations des multiples utilisateurs de mon site, je crypte le mot de passe comme-ci :
au moment de les authentifier, je procède comme suit :
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 private void traiterMotsDePasse( String motDePasse, String confirmation, Utilisateur utilisateur ) { try { validationMotsDePasse( motDePasse, confirmation ); } catch (FormValidationException e ) { setErreur( CHAMP_PASS, e.getMessage() ); setErreur( CHAMP_CONF, null ); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } /** * Utilisation de la bibliothèque Jasypt pour chiffrer le mot de pass éfficacement. * * L'algorithme SHA-256 est ici utilisé, avec par défaut un salage * aléatoire et un grand nombre d'itérations de la fonction de hashage. * * La String retournée est de longueur 56 et contient le hash en Base64. */ ConfigurablePasswordEncryptor passwordEncryptor = new ConfigurablePasswordEncryptor(); passwordEncryptor.setAlgorithm(ALGO_CHIFFREMENT ); passwordEncryptor.setPlainDigest( false ); String motDePasseChiffre = passwordEncryptor.encryptPassword(motDePasse); utilisateur.setMotDePasse(motDePasseChiffre ); }
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 public boolean connecterUtilisateur( HttpServletRequest request ) { /* Récupération des champs du formulaire */ boolean conn=false; String matricule = getValeurChamp( request, CHAMP_MATRICULE ); String motDePasse = getValeurChamp( request, CHAMP_PASS ); Utilisateur utilisateur = new Utilisateur(); try { /** * Utilisation de la bibliothèque Jasypt pour chiffrer le mot de pass éfficacement. * * L'algorithme SHA-256 est ici utilisé, avec par défaut un salage * aléatoire et un grand nombre d'itérations de la fonction de hashage. * * La String retournée est de longueur 56 et contient le hash en Base64. */ traiterMotsDePasse(motDePasse, utilisateur ); ConfigurablePasswordEncryptor passwordEncryptor = new ConfigurablePasswordEncryptor(); passwordEncryptor.setAlgorithm(ALGO_CHIFFREMENT ); passwordEncryptor.setPlainDigest(false); String motDePasseChiffre = passwordEncryptor.encryptPassword(motDePasse); utilisateur.setMotDePasse(motDePasseChiffre ); traiterMatricule(matricule, utilisateur); utilisateur.setMatricule(matricule); boolean user=utilisateurDao.Authentifcate(utilisateur); if (erreurs.isEmpty() && user==true) { resultat = "Connexion Reussie."; conn=true; } else { resultat = "Échec de connexion."; } } catch ( DAOMoptgisException e ) { resultat = "Échec de connexion : une erreur imprévue est survenue, merci de réessayer dans quelques instants."; e.printStackTrace(); } return conn; }voici l'erreur qu'il me renvoit:
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 public boolean Authentifcate(Utilisateur utilisateur){ java.sql.Connection connexion = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; boolean count=false; try { /* Récupération d'une connexion depuis la Factory */ connexion = this.moptGisFactory.getConnection(); preparedStatement=connexion.prepareStatement(connectUser); preparedStatement.setString(1, utilisateur.getMatricule()); preparedStatement.setString(2, utilisateur.getMotDePasse()); resultSet=preparedStatement.executeQuery(); while(resultSet.next()){ String mat=resultSet.getString(resultSet.findColumn("matricule")); String password=resultSet.getString( resultSet.findColumn("mot_de_passe" )); if(mat.equalsIgnoreCase(utilisateur.getMatricule()) && password.equalsIgnoreCase(utilisateur.getMotDePasse())){ System.out.println("Succes d'Authentification"); utilisateur.setMatricule(mat); } count=true; } if(!resultSet.next()){ throw new DAOMoptgisException( "Échec de connexion de l'utilisateur, aucune ligne trouvée dans la table." ); } } catch ( SQLException e ) { throw new DAOMoptgisException( e ); } catch ( DAOMoptgisException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { fermeturesSilencieuses( resultSet, preparedStatement, connexion ); } System.out.println(count); return count ; }
que faire pour résoudre ce problème ?
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 Échec de connexion de l'utilisateur, aucune ligne trouvée dans la table. at com.mtn.database.UtilisateurDaoImpl.Authentifcate(UtilisateurDaoImpl.java:214) at com.mtn.form.ConnexionForm.connecterUtilisateur(ConnexionForm.java:81) at com.mtn.controller.Connexion.doPost(Connexion.java:87) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) false
Partager