Jframe l'authentification d'application

cs_tresbien Messages postés 7 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 12 juin 2010 - 12 juin 2010 à 01:20
anix Messages postés 72 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 24 octobre 2010 - 14 juin 2010 à 20:18
bonjour,


je veux faire s'authentifier mon application par un nom d'utilisateur et mot de passe en java, quelqu'un m'aider à donner le code source que je peut mettre.j'ai une table User dans ma base de donnée .
voici mon code :
 public boolean login(String num) {
           try {
            Class.forName("com.mysql.jdbc.Driver");
            con = (Connection) DriverManager.getConnection( "jdbc:mysql://localhost:3306/mabase?user=root&password=");
            st = (Statement) con.createStatement();
            rs = st.executeQuery("select Pseudo from User Where Pseudo='" + num +"'");
            System.out.println(rs);
            return rs.next();
            }
           catch (Exception e) {
             System.out.println(e.toString());
            return false;
          }
           }

     public boolean pass(String mp) {

        try {
            con = (Connection) DriverManager.getConnection( "jdbc:mysql://localhost:3306/mabase?user=root&password=");
            st = (Statement) con.createStatement();
            rs = st.executeQuery("SELECT Modpass from user Where Modpass='"+mp+"'");
           System.out.println(" valider");
            return rs.next();
            }
        catch (Exception e) {
            System.out.println(e.toString());
            return false;
        }
     }




voici le code de mon bouton connecter :
 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        





        String nom=t0.getText();
        String mp=t1.getText();
       

 if(login(nom) && pass(mp)  ){
      Menu F=new Menu();
            this.pan.add(F);
                 F.show(true);
        F.setSize(990, 650);
        }
         else{
             JOptionPane.showMessageDialog(null, "Votre Login ou mot de passe est erroné");
             t0.setText("");t1.setText("");
             System.err.println("Erreur de login");
         }



      
    }   


merci.

11 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
12 juin 2010 à 07:30
Il y a un problème, tu ne vérifie pas que ton mot de passe correspond au login entré.
Je ferais plutôt comme ca
public boolean isInfoValides(String login, String mp) {
     boolean correct = false;
     try {
          Class.forName("com.mysql.jdbc.Driver");
          con = (Connection) DriverManager.getConnection(     
               "jdbc:mysql://localhost:3306/mabase?user=root&password=");
          st = (Statement) con.createStatement();
          rs = st.executeQuery("select Pseudo, Modpass from User Where 
               Pseudo='" + login +"'");
          if(rs.next()){
               correct = (rs.getString("Pseudo").compareTo(login)==0)
                    &&(rs.getString("ModPass").compareTo(mp)==0));
          }
     }
     catch (Exception e) {
          System.out.println(e.toString());
     }
     return correct;
 }
0
cs_tresbien Messages postés 7 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 12 juin 2010
12 juin 2010 à 17:13
bonjour
oui ca marche bien merci julien pour votre aide .
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
13 juin 2010 à 07:31
Pour l'authentification, tu peux utiliser JAAS http://java.sun.com/javase/technologies/security/. Comme ca tu ne laisse pas à la portée de tous dans une base de données l'ensemble des mots de passe et identifiants.

Mais, selon les besoins de ton application, ce que tu as fait est peut être suffisant.
0
anix Messages postés 72 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 24 octobre 2010
13 juin 2010 à 21:44
Bonjour,

j'utilises ton modéle pour l'authentification et je rencontre une difficulté:
Je fais l'authentification dans une jframe fille de la jframe principale et je ne sais pas comment lui passer les informations que je suis bien connecté ou non avec une chaine de caractéres donnant le type de login.
Je ne sais pas si c'est bien comprit ou non le probléme

merci pour toute réponse
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
14 juin 2010 à 07:19
Dans ta fenêtre principale, tu mets un attribut booléen connecte.

Dans le constructeur de la classe fille tu mets ce booléen en paramètre, de cette manière si quelqu'un essaye de se connecter alors que le booléen est vrai, tu l'en empêche car une connexion est déjà établie et sinon, tu établi la connexion et une fois que c'est fait, tu le passes à vrai.
0
anix Messages postés 72 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 24 octobre 2010
14 juin 2010 à 12:17
je pense que tu n'as pas comprit ce que je veux faire
je veux passer le paramétre de la fille à la mére et non le contraire
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
14 juin 2010 à 13:39
Dans la fille tu mets l'attribut de la classe mere a modifier, j'ai bien compris ce que tu voulaius je pense. De toute facon, dans la mère on a forcément les attributs de la fille
0
anix Messages postés 72 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 24 octobre 2010
14 juin 2010 à 14:13
je te remercies pour ta réponse mais
je suis désolé je n'ai pas bien compris comment faire
petite explication: la fille est une jframe que j'appelle du menu de la jframe mére en faisant
fille f=new fille();
s.setVisible(true);
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
14 juin 2010 à 17:35
En fait, ce n'est pas la première fois que je réponds à une question de ce genre, c'est un problème assez récurent mais pourtant simple à résoudre.
Dans la classe mère:
private String infoATransmettre;
//...
Fille f = new Fille(this);
f.setVisible(true);
//...
public setInfoATransmettre(String info){
     this.infoATransmettre = info;
}


Dans la classe fille :
Mere mere;
public Fille(Mere m){
     mere = m;
     //Autres attributs
}

public void transmettreInfo(String info){
     mere.setInfoATransmettre(info)
}


Tu vois comment faire ?
0
anix Messages postés 72 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 24 octobre 2010
14 juin 2010 à 19:59
merci
0
anix Messages postés 72 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 24 octobre 2010
14 juin 2010 à 20:18
super!!!, ça marche
merci beaucoups Julien39
0
Rejoignez-nous