1. #1
    Membre à l'essai
    Homme Profil pro
    Economiste
    Inscrit en
    décembre 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Bénin

    Informations professionnelles :
    Activité : Economiste
    Secteur : Associations - ONG

    Informations forums :
    Inscription : décembre 2016
    Messages : 33
    Points : 15
    Points
    15

    Par défaut Recupérer les informations de l'utilisateur connecté puis les utiliser dans d'autres classes du projet

    Bonsoir,
    Je suis entrain de développer une application me permettant de gérer les clients d'une entreprise de même que leurs opérations. Actuellement dans l'application, ces un seul utilisateur qui est supposé avoir enregistrer tous les clients. Ce qui n'est pas le cas. Je souhaite pouvoir connaitre les opérations qu'a menés chaque utilisateurs. Par exemple, je veut connaitre l'utilisateur qui a enregistré tel ou tel client. L'idée que j'ai eu est de pouvoir stocker le code de l'utilisateur qui se connecte dans les getters de la classe Utilisateur après que l'utilisateur s'est identifier par son mot de pass et identifiant. Puis utiliser cette variable dans toutes les classes du projet où besoin se fera sentir. Voici mes codes:

    . méthode d'identification:
    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
    public Utilisateur login(String identifiant, String motPass){
            Utilisateur util = null;
            Connection conn=SingletonConnection.getConnection();
            try {
                PreparedStatement ps=conn.prepareStatement
                        ("select * from UTILISATEUR where IDENTIFIANT=? and MOT_PASS=?");
                ps.setString(1, identifiant);
                ps.setString(2, motPass);
                ResultSet rs=ps.executeQuery();
     
                if(rs.next()){
                    util=new Utilisateur();
                    util.setCODE_EMP(rs.getString("CODE_EMP"));
                    util.setIDENTIFIANT(rs.getString("IDENTIFIANT"));
                    util.setMOT_PASS(rs.getString("MOT_PASS"));
                    util.setPOSTE(rs.getString("POSTE"));
     
     
                    Menu menu=new Menu();
                    menu.setVisible(true);
     
                }else{
                    JOptionPane.showMessageDialog
                    (null, "Vérifiez votre identifiant ou votre mot de pass ou contactez l'administrateur");
                }
     
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
     
            return util;
     
        }
    . méthode pour enregistrer un client :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    public void actionPerformed(ActionEvent arg0) {
                    
                    
                    try {
                        ps=conn.prepareStatement("select CODE_CLI from CLIENT where CODE_CLI='"+txtCode.getText()+"'");
                        rs=ps.executeQuery();
                        
                        if(rs.next() /*&& code==null*/){
                            JOptionPane.showMessageDialog(null, "Le client/membre existe déjà. Veuillez choisir autre code client non utilisé");
                        }else{
                            
                                try {
                                ps=conn.prepareStatement
                                        ("insert into CLIENT values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
                                ps.setInt(1, idCli);
                                ps.setString(2, txtCode.getText());
                                ps.setString(3, txtNom.getText());
                                ps.setString(4, txtPrenom.getText());
                                ps.setString(5, txtSurnom.getText());
                                ps.setString(6, ((JTextField)dateInscription.getDateEditor().getUiComponent()).getText());
                                String value=cmbSexe.getSelectedItem().toString();
                                ps.setString(7, value);
                                ps.setString(8, txtAge.getText());
                                ps.setString(9, txtAdresse.getText());
                                ps.setString(10, txtContact.getText());
                                ps.setString(11, txtActivite.getText());
                                String value1=cmbType.getSelectedItem().toString();
                                
                                ps.setString(12, value1);
                                ps.setString(13, txtNumPiece.getText());
                                ps.setString(14, ((JTextField)dateExpire.getDateEditor().getUiComponent()).getText());
                                //String value2 = cmbCodeEmploye.getSelectedItem().toString();
                                Utilisateur ut= new Utilisateur();
                                ps.setString(15, ut.getCODE_EMP());
                                ps.execute();
                                ps.close();
                                txtCode.setText("");
                                txtNom.setText("");
                                txtPrenom.setText("");
                                txtSurnom.setText("");
                                txtAge.setText("");
                                txtAdresse.setText("");
                                txtContact.setText("");
                                txtActivite.setText("");
                                txtNumPiece.setText("");
                            } catch (SQLException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                                JOptionPane.showMessageDialog(null, e);
                            }
                            }
                        
                    } catch (SQLException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
                    //}
                    
                    
                }
    Le code en vert est celui qui devrai me permettre de récupérer et d'utiliser le code de l'utilisateur connecté. Mais je n'est aucun résultat. Quelqu'un a t il une idée me permettant de résoudre ce problème. Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2007
    Messages
    24 987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2007
    Messages : 24 987
    Points : 47 771
    Points
    47 771

    Par défaut

    Vu que c'est une application swing qui se connecte directement à la base de données où les mots de passes sont stockés en clair, tu peux carrément oublier ton idée d'avoir des utilisateurs. T'as 0 sécurité .

    Pour ta question, avec un new Utilisateur, ben t'aura un nouvel utilisateur. Pas celui que tu a créé lors du login. Il faut passer en paramètre ou stocker quelque part cet utilisateur là pour pouvoir le récupérer ensuite.
    David Delbecq Java Software engineer chez Trimble. TRANSPORT & LOGISTICS.     LinkedIn | Google+

  3. #3
    Membre à l'essai
    Homme Profil pro
    Economiste
    Inscrit en
    décembre 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Bénin

    Informations professionnelles :
    Activité : Economiste
    Secteur : Associations - ONG

    Informations forums :
    Inscription : décembre 2016
    Messages : 33
    Points : 15
    Points
    15

    Par défaut

    Merci pour votre réponse.
    Par rapport a votre suggestion, j'ai crée une nouvelle table dans ma base de donnée me permettant de savoir le code de tous les utilisateurs qui se connecterons à l'application. Par une nouvelle méthode, j'arrive à sélectionner le dernier utilisateur connecte. Voici le code :
    . code pour identification et enregistrement de l'utilisateur connecté
    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 Utilisateur login(String identifiant, String motPass){
    		Utilisateur util = null;
    		Connection conn=SingletonConnection.getConnection();
    		try {
    			PreparedStatement ps=conn.prepareStatement
    					("select * from UTILISATEUR where IDENTIFIANT=? and MOT_PASS=?");
    			ps.setString(1, identifiant);
    			ps.setString(2, motPass);
    			ResultSet rs=ps.executeQuery();
     
    			if(rs.next()){
    				util=new Utilisateur();
    				util.setCODE_EMP(rs.getString("CODE_EMP"));
    				util.setIDENTIFIANT(rs.getString("IDENTIFIANT"));
    				util.setMOT_PASS(rs.getString("MOT_PASS"));
    				util.setPOSTE(rs.getString("POSTE"));
    				Menu menu=new Menu();
    				menu.setVisible(true);
    				//Me permet d'enrégistré les utilisateur qui se connecte à l'application
    				int a=0;
     
    				PreparedStatement ps1=conn.prepareStatement
    						("insert into UTI_CONNECTE values ('"+a+"',NOW(),'"+rs.getString("CODE_EMP")+"')");
     
    				ps1.executeUpdate();
    				ps1.close();
    			}else{
    				JOptionPane.showMessageDialog
    				(null, "Vérifiez votre identifiant ou votre mot de pass ou contactez l'administrateur");
    			}
     
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
    		return util;
     
    	}
    . code pour récupérer le dernier utilisateur connecté
    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
    public Utilisateur utilisateurConnecte(){
    		Utilisateur utilisateur=null;
    		Connection conn=SingletonConnection.getConnection();
    		try {
    			PreparedStatement ps=conn.prepareStatement
    					("select CODE_EMP from uti_connecte where id=(select MAX(id) from uti_connecte) ");
    			ResultSet rs=ps.executeQuery();
    			while(rs.next()){
    				String codeEploye=rs.getString("CODE_EMP");
    			}
    			ps.close();
    			rs.close();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
    		return utilisateur;
    	}
    Mais actuellement je ne sais pas comment récupéré dans d'autre classe. Merci.

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2007
    Messages
    24 987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2007
    Messages : 24 987
    Points : 47 771
    Points
    47 771

    Par défaut

    Heu bof, aller récupérer la dernière entrée de la table, ca va te donner le dernier connecté, pas nécessairement celui qui est devant l'application là maintenant si l'application tourne sur plusieurs postes.


    Tu récupère l'objet utilisateur que ta méthode login te retourne gentillement et tu le stocke, par exemple dans ton controlleur, ta fenêtre ou toute autre classe que tu as actuellement pour orchestrer toute ton application, pour pouvoir le consulter plus tard.
    David Delbecq Java Software engineer chez Trimble. TRANSPORT & LOGISTICS.     LinkedIn | Google+

  5. #5
    Membre à l'essai
    Homme Profil pro
    Economiste
    Inscrit en
    décembre 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Bénin

    Informations professionnelles :
    Activité : Economiste
    Secteur : Associations - ONG

    Informations forums :
    Inscription : décembre 2016
    Messages : 33
    Points : 15
    Points
    15

    Par défaut

    Bonjour tchize_. Merci pour votre aide. Maintenant j'ai puis récupéré le dernier utilisateur connecté et les enregistrements marches. Mais comme vous l'avez souligné dans le précédant message, il y aura plusieurs utilisateurs connecté. Du coup les enregistrement seront fait avec le code du dernier utilisateur. Ce que je ne veut pas. Comment je peut faire pour récupéré le vrai utilisateur connecté lors des enregistrements ?

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2007
    Messages
    24 987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2007
    Messages : 24 987
    Points : 47 771
    Points
    47 771

    Par défaut

    Citation Envoyé par tchize_ Voir le message

    Tu récupère l'objet utilisateur que ta méthode login te retourne gentillement et tu le stocke, par exemple dans ton controlleur, ta fenêtre ou toute autre classe que tu as actuellement pour orchestrer toute ton application, pour pouvoir le consulter plus tard.
    David Delbecq Java Software engineer chez Trimble. TRANSPORT & LOGISTICS.     LinkedIn | Google+

  7. #7
    Membre à l'essai
    Homme Profil pro
    Economiste
    Inscrit en
    décembre 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Bénin

    Informations professionnelles :
    Activité : Economiste
    Secteur : Associations - ONG

    Informations forums :
    Inscription : décembre 2016
    Messages : 33
    Points : 15
    Points
    15

    Par défaut

    Bonjour,
    j'ai enfin trouver de solution à mon problème. Pour y parvenir, j'ai crée une variable static dans lequel je stock le code de l'utilisateur qui se connecte à l'application en suite je l'utilise partout où je le souhaite. Grand merci pour votre aide.
    tchize_ m'avais reproché le problème de sécurité de mon application. Je ne suit qu'un débutant et je souhaite qu'il m'aide également pour mettre en place un système de sécurité de l'application. Merci pour tous.

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/06/2013, 16h16
  2. [GateIn] Extraire les informations de l'utilisateur connecté
    Par meher211 dans le forum Portails
    Réponses: 1
    Dernier message: 22/07/2012, 23h29
  3. Réponses: 2
    Dernier message: 12/09/2011, 09h39
  4. recupérer le login de l'utilisateur connecté ?
    Par peregna2007 dans le forum SharePoint
    Réponses: 2
    Dernier message: 26/12/2008, 16h49
  5. Récupérer les informations de la personne connectée
    Par mafalda84 dans le forum PHP & MySQL
    Réponses: 1
    Dernier message: 14/12/2008, 01h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo