Probleme d'authentification

Résolu
cs_Alizzy Messages postés 17 Date d'inscription lundi 26 avril 2010 Statut Membre Dernière intervention 28 août 2012 - 7 févr. 2011 à 00:58
cs_Alizzy Messages postés 17 Date d'inscription lundi 26 avril 2010 Statut Membre Dernière intervention 28 août 2012 - 9 févr. 2011 à 18:02
je developpe une application avec netbeans et là je fais des contrôles pour l'authentification des utilisateurs mais en vain. je crois que j'ai dejà tout essayé, je suis dessus depuis des jours,je vous envoie le code que j'ai écrit et merci de bien vouloir m'aider je vous prie:

String login=null;
String pwd=null;
String fct=null;

if(evt.getSource()==connexion)
{
ConnectDB();
try
{
st=con.createStatement();
}
catch(SQLException e)
{
System.out.println("Impossible de créer de Statement");
}

String log=textLog.getText();
char[] mot=passwd.getPassword();
String mdp=mot.toString();

if(log.equals("")||(mdp.equals("")))
{
//ce label renvoi un message d'erreur
jLabel4.setVisible(true);
}

else
{

try {
ps=con.prepareStatement("select * from utilisateurs where login=? and matricule=? ");

ps.setString(1, log);
ps.setString(2, mdp);
rs=ps.executeQuery();
while(rs.next()){
pwd=rs.getString("matricule");
login=rs.getString("login");
fct=rs.getString("fonction");

if(log.equals(login)&&(pwd.equals(mdp)))
{
if(fct.equals("Administration")){
this.dispose();
new InterfAdminInf().setVisible(true);
}
if(fct.equals("Etudiant")){
this.dispose();
new InterfEtudiant().setVisible(true);
}
}

else{
JOptionPane.showMessageDialog(this,"cet utilisateur n'existe pas","msg d'erreur",JOptionPane.INFORMATION_MESSAGE, null);
}
}
}

catch (SQLException ex) {
Logger.getLogger(ComptUser.class.getName()).log(Level.SEVERE, null, ex);
}
}

try{ st.close();
con.close();
}
catch(Exception e){
System.out.println("erreur fermeture:"+e.getMessage());
}
}

4 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
7 févr. 2011 à 13:30
Salut,

Ce que tu fais pour récupérer le mot de passe est archi faux :
char[] mot=passwd.getPassword(); // ok
String mdp=mot.toString(); // te retourne le hash de ton tableau et en AUCUN cas le tableau au format String


Il faut que tu convertisses le tableau de char en String :
String pwd = new String(mot);
// ou encore 
String pwd = new String(passwd.getPassword());


Petit sample pour comparaison :
public static void main(String[] args) {
  JPasswordField tpf = new JPasswordField();
  tpf.setText("Hey !");

  char [] cpawd = tpf.getPassword();
  System.err.println(cpawd.toString()); // chez moi ça retourne : [C@109fd93
  String pwd = new String(cpawd);
  System.err.println(pwd); // retourne : Hey !
}




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
3
Utilisateur anonyme
7 févr. 2011 à 10:32
Bonjour

Sois plus précis, qu'est-ce qui ne marche pas?








TUER : http://tuer.sourceforge.net/tuer.jnlp

yeah! vive java
0
cs_Alizzy Messages postés 17 Date d'inscription lundi 26 avril 2010 Statut Membre Dernière intervention 28 août 2012
9 févr. 2011 à 17:49
je te remercie Twinuts pour ta rectification sur mon code, en fait je ne l'avais pas testé, merci bien.
Maintenant je m'adresse à Gouessej qui m'a demandé d'être plus précise. Alors quand l'utilisateur s'authentifie correctement une nouvelle fenêtre s'ouvre après le clic sur le bouton "connexion". C'est cette fenêtre qui ne s'affiche pas et cela voudrait dire qu'il ya une incohérence au niveau du code pour le contrôle des données(mot de passe et login) saisies avec ceux se trouvant dans la base de données. Et donc je ne vois pas où se trouve le problème en question.
Merci pour votre appui
0
cs_Alizzy Messages postés 17 Date d'inscription lundi 26 avril 2010 Statut Membre Dernière intervention 28 août 2012
9 févr. 2011 à 18:02
Désolé du dérangement, je viens de faire ce que m'a proposé Twinuts et ça a résolu tout le problème.
je te remercie Twinuts et aussi à toute l'équipe.
0
Rejoignez-nous