Login et mot de passe [Résolu]

208893 55 Messages postés mercredi 14 avril 2010Date d'inscription 21 décembre 2010 Dernière intervention - 30 juil. 2010 à 12:30 - Dernière réponse : ouatt121 12 Messages postés lundi 19 janvier 2009Date d'inscription 11 septembre 2010 Dernière intervention
- 11 sept. 2010 à 16:06
bonjours j'ai un problème de l'exécution de login et mot de passe.
le problème est n'importe qui peut accéder à mon application l'application ne vérifier pas le login et le mot de passe et voila mon code
/////////////////////////////////////////////////////////////////
//LoginForm.java
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.UnknownHostException;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

import javax.imageio.IIOException;
import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
import javax.swing.border.Border;


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class LoginForm extends JFrame {

// Variables declaration
private JLabel jLabel1;
private JLabel jLabel2,jLabel3;
private JTextField jTextField1;
private JComboBox l3=null;
private JPasswordField jPasswordField1;
private JButton jButton1;
private JPanel contentPane;
boolean loop = false;
// End of variables declaration

public LoginForm() {
super();
create();
this.setVisible(true);
}

private void create() {
jLabel1 = new JLabel();
jLabel2 = new JLabel();
jLabel3 = new JLabel();
jTextField1 = new JTextField();
jPasswordField1 = new JPasswordField();
l3=new JComboBox();
l3.addItem("Administrateur");
l3.addItem("Non administrateur");
jButton1 = new JButton();
contentPane = (JPanel)this.getContentPane();


jLabel1.setHorizontalAlignment(SwingConstants.LEFT);
//jLabel1.setForeground(new Color(0, 0, 255));
jLabel1.setText("Login :");

jLabel2.setHorizontalAlignment(SwingConstants.LEFT);
// jLabel2.setForeground(new Color(0, 0, 255));
jLabel2.setText("Mot de passe :");

jLabel3.setHorizontalAlignment(SwingConstants.LEFT);
// jLabel3.setForeground(new Color(0, 0, 255));
jLabel3.setText("Etat :");

jTextField1.setToolTipText("Entrer votre login");


jPasswordField1.setToolTipText("Entrer votre mot de passe");


l3.setToolTipText("login");


jButton1.setText("OK");
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
jButton1_actionPerformed(e);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}

});

//
// contentPane
//
contentPane.setLayout(null);
contentPane.setBorder(BorderFactory.createEtchedBorder());
// contentPane.setBackground(new Color(204, 204, 204));
addComponent(contentPane, jLabel1, 5,10,106,18);
addComponent(contentPane, jLabel2, 5,47,97,18);
addComponent(contentPane, jLabel3, 5,77,90,18);
addComponent(contentPane, jTextField1, 110,10,183,22);
addComponent(contentPane, jPasswordField1, 110,45,183,22);

addComponent(contentPane, l3, 110,75,183,22);

addComponent(contentPane, jButton1, 150,110,100,28);

//
// login
//
this.setTitle("Espace d'authentification");
this.setLocation(new Point(76, 182));
this.setSize(new Dimension(335, 201));
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setResizable(false);
} //end of create()

/** Add Component Without a Layout Manager (Absolute Positioning) */
private void addComponent(Container container,Component c,int x,int y,int width,int height) {
c.setBounds(x,y,width,height);
container.add(c);
} //end of addComponent()

private void jButton1_actionPerformed(ActionEvent e) throws Exception {

String username = new String(jTextField1.getText());
String password = new String(jPasswordField1.getText());
String etat = new String(l3.getSelectedItem().toString());

if(username.equals("") || password.equals("")) { // If password and username is empty > Do this >>>

jButton1.setEnabled(false);
JLabel errorFields = new JLabel("<HTML>Vous devez entrer votre login et mot de passe.</HTML>");
JOptionPane.showMessageDialog(null,errorFields);
jTextField1.setText("");
jPasswordField1.setText("");
jButton1.setEnabled(true);
this.setVisible(true);


} //end of if
else if(username.equals("") || password.equals("")|| etat.equals("Non administrateur")){

UserDB udb=new UserDB();
boolean canLogin = UserDB.Connexion_utilisateur(username, password);
Ofenetre oFen = new Ofenetre();
oFen.setVisible(true);
this.setVisible(false);
JOptionPane.showMessageDialog(null, "Bienvenue, vous êtes connecté.", "Bienvenue", JOptionPane.WARNING_MESSAGE);
}
else if(username.equals("") || password.equals("")|| etat.equals("Administrateur")){

UserDB udb=new UserDB();
boolean canLogin = UserDB.Connexion_utilisateur(username, password);
ZFenetre zFen = new ZFenetre();
zFen.setVisible(true);
this.setVisible(false);
JOptionPane.showMessageDialog(null, "Bienvenue administrateur, vous êtes connecté.", "Bienvenue", JOptionPane.WARNING_MESSAGE);

do{
loop = false;

if(!canLogin) {
JOptionPane.showMessageDialog(null, "Le login et le mot de passe sont erronés, essayez de nouveau", "Warning !!!", JOptionPane.WARNING_MESSAGE);
jTextField1.setText("");
jPasswordField1.setText("");
loop = true;

break;
} //end of if

} //end of do
while (loop);
} //end of else
} //end of jButton1_actionPerformed()

public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);

liste_ouvrier lf = new liste_ouvrier();

add_ouv add = new add_ouv();

Liste_formation form = new Liste_formation();

Liste_process proc = new Liste_process();
ajout_process ajoutt = new ajout_process();

try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} //end of try

catch (Exception ex) {

} //end of catch

new LoginForm();
}; //end of main()

} //end of LoginForm
//////////////////////////////////////////////////////////////////
et merci d'avance
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 30 juil. 2010 à 12:43
2
Merci
Salut,

Et c'est quoi le problème au juste ?
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement

Merci cs_DARKSIDIOUS 2

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
fadouahassen22 15 Messages postés jeudi 8 juillet 2010Date d'inscription 25 août 2010 Dernière intervention - 2 août 2010 à 15:10
0
Merci
bonjour !
je fais une application qui dois prendre en considération un petit test de login et password avant d'y entrer, mais je n'ai pas trouvé comment vérifier le entered login & password avec tous ceux qui existent dans la database.
si vous m'aidez je serai reconnaissante.

merci
Commenter la réponse de fadouahassen22
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 2 août 2010 à 15:16
0
Merci
Salut,

Sans vraiment comprendre tout ton code, déjà je vois un problème :

Tu teste ceci : username.equals("") || password.equals("")

Et ensuite tu teste ceci dans le else :
username.equals("") || password.equals("")|| etat.equals("Non administrateur")

Mais il ne passera jamais dans le else vu que si le username ou le password est vide, il passera dans le premier cas, donc le deuxième test ne sera jamais évalué.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Commenter la réponse de cs_DARKSIDIOUS
fadouahassen22 15 Messages postés jeudi 8 juillet 2010Date d'inscription 25 août 2010 Dernière intervention - 2 août 2010 à 15:34
0
Merci
salut!

le problème c'est qu'on me vérifie que le premier login et motdpasse qui existent dans la base de donnée , dès que je fais entrer un autre loin et motd passe autre que le 1er figurant ds la database ça m'affiche le msg d'erreur.

ce qui m'échappe c'est comment parcourir toute la base pourcomprer les info entrées avec les existantes


thx (^_^)
Commenter la réponse de fadouahassen22
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 2 août 2010 à 15:42
0
Merci
Salut,

Ah ben voilà, c'est déjà plus précis comme question.

La façon pour vérifier cà, ce n'est pas de récupérer tout les logins/mot de passe de la base de données et de les tester par du code java, mais de faire une requête SQL qui te renvoie l'enregistrement correspondant au login/mot de passe saisit.

Par exemple, au lieu de faire :
"SELECT id FROM table"

faire :
"SELECT id FROM table WHERE username '" + username.replaceAll("'", "''") + "' AND password '" + password.replaceAll("'", "''") + "'"

Ainsi tu sauras tout de suite si cet utilisateur existe en base, et ce sera bien plus efficace que de parcourir tout tes enregistrements un à un en java !
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Commenter la réponse de cs_DARKSIDIOUS
kanamesama 7 Messages postés vendredi 30 janvier 2009Date d'inscription 26 août 2010 Dernière intervention - 26 août 2010 à 10:33
0
Merci
Bonjour,

Si je vous comprends bien, cette requête SQL devra être intégrée quelque part dans le code de l'interface "LOGIN"?? J'ai déjà un fichier "requetes.java" dans mon projet ou je mettais jusque là les requêtes SQL qui me remplissaient mes interfaces java à partir de ma base de données MySQL, devrais-je ajouter ma nouvelle requête SQL (d'authentification) à ce même fichier requête.java?

D'un autre côté, dans ma base de données, j'ai une table "utilisateurs" avec uniquement deux champs ( login et password) devrais-je mettre comme requête:

"SELECT * FROM utilisateurs WHERE login '" + jTextField1.getText().replaceAll("'", "''") + "' AND password '" + jPasswordField.getText().replaceAll("'", "''") + "'" ;

Je vous prie de m'aider
Merci d'avance
Commenter la réponse de kanamesama
kanamesama 7 Messages postés vendredi 30 janvier 2009Date d'inscription 26 août 2010 Dernière intervention - 26 août 2010 à 12:40
0
Merci
Re-bonjour,

veuillez trouver ci dessous le code de mon formulaire d'authentification "login.java":

----------------------------------------------------------------------------------
import java.awt.BorderLayout;

import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import java.awt.GridBagLayout;
import javax.swing.JLabel;
import java.awt.Rectangle;

import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;
import java.awt.Toolkit;
import javax.swing.ImageIcon;



import java.awt.Color;

public class login extends JFrame {

private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JPanel jPanel = null;
private JLabel jLbllogin = null;
private JLabel jLblmotdepasse = null;
private JTextField jTxtlogin = null;
private JPasswordField jPwdmotdepass = null;
private JButton jBtnvalider = null;
private JLabel jLblimage = null;
/**
* This is the default constructor
*/
public login() {
super();
initialize();
}

/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(372, 280);
this.setResizable(false);
this.setName("");
this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/groupe-jabber-icone-6297-128.png")));
this.setContentPane(getJContentPane());
this.setTitle(" Veuillez vous authentifier");
}

/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJPanel(), BorderLayout.CENTER);
}
return jContentPane;
}

/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel() {
if (jPanel == null) {
jLblimage = new JLabel();
jLblimage.setBounds(new Rectangle(1, 0, 366, 246));
jLblimage.setIcon(new ImageIcon(getClass().getResource("/images/mot-de-passe.jpg")));
jLblimage.setText("JLabel");
jLblmotdepasse = new JLabel();
jLblmotdepasse.setBounds(new Rectangle(37, 106, 107, 29));
jLblmotdepasse.setText(" Mot de passe");
jLbllogin = new JLabel();
jLbllogin.setBounds(new Rectangle(38, 64, 107, 29));
jLbllogin.setText(" Login");
jPanel = new JPanel();
jPanel.setLayout(null);
jPanel.setBackground(new Color(172, 172, 223));
jPanel.add(jLbllogin, null);
jPanel.add(jLblmotdepasse, null);
jPanel.add(getJTxtlogin(), null);
jPanel.add(getJPwdmotdepass(), null);
jPanel.add(getJBtnvalider(), null);
jPanel.add(jLblimage, null);
}
return jPanel;
}

/**
* This method initializes jTxtlogin
*
* @return javax.swing.JTextField
*/
private JTextField getJTxtlogin() {
if (jTxtlogin == null) {
jTxtlogin = new JTextField();
jTxtlogin.setBounds(new Rectangle(201, 64, 134, 29));
}
return jTxtlogin;
}

/**
* This method initializes jPwdmotdepass
*
* @return javax.swing.JPasswordField
*/
private JPasswordField getJPwdmotdepass() {
if (jPwdmotdepass == null) {
jPwdmotdepass = new JPasswordField();
jPwdmotdepass.setBounds(new Rectangle(201, 105, 134, 29));
}
return jPwdmotdepass;
}

/**
* This method initializes jBtnvalider
*
* @return javax.swing.JButton
*/
private JButton getJBtnvalider() {
if (jBtnvalider == null) {
jBtnvalider = new JButton();
jBtnvalider.setBounds(new Rectangle(111, 166, 137, 25));
jBtnvalider.setText(" Valider");
jBtnvalider.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()");
if(jTxtlogin.getText().equals(new String("user")))
if(String.copyValueOf(jPwdmotdepass.getPassword()).equals(new String("user")))
{
main.connecte=true;
setVisible(false);
main.a=new Interface();
main.a.setVisible(true);
}
else
JOptionPane.showMessageDialog(null, "Vérifiez vos login & mot de passe");
}
});
}
return jBtnvalider;
}

}

-----------------------------------------------------------------------------------

j'aimerai maintenant faire en sorte de ne plus m'authentifier en tant que "user/user" mais permettre plutôt à tous les utilisateurs enregistrés dans ma table "utilisateurs" de ma base de données Mysql de s'authenfier.
Je devrais donc insérer une requête sql quelque part n'est ce pas? Mais je sais pas comment y procéder?

Merci d'avance
Commenter la réponse de kanamesama
ouatt121 12 Messages postés lundi 19 janvier 2009Date d'inscription 11 septembre 2010 Dernière intervention - 11 sept. 2010 à 16:06
0
Merci
voici un exemple de code d'authentification qui pourra d'aider

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/*
* authentification.java
*
* Created on 17 mars 2010, 15:53:33
*/

package recharge_electronique;
import javax.swing.JOptionPane;
import java.sql.*;

/**
*
* @author Simbil
*/
public class authentification extends javax.swing.JFrame {

/** Creates new form authentification */
public authentification() {
initComponents();
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jPasswordField1 = new javax.swing.JPasswordField();
jLabel3 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 14));
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/userstra.png"))); // NOI18N

jLabel2.setFont(new java.awt.Font("Times New Roman", 1, 14));
jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/passwordtra.png"))); // NOI18N

jButton1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/ok.png"))); // NOI18N
jButton1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
jButton1.setName("valider"); // NOI18N
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setFont(new java.awt.Font("Tahoma", 1, 14));
jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/bad.png"))); // NOI18N
jButton2.setActionCommand("Annuler");
jButton2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
jButton2.setName("valider"); // NOI18N
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

jLabel3.setFont(new java.awt.Font("Angsana New", 2, 24));
jLabel3.setText("Veuillez vous authentifier");

org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(39, 39, 39)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(55, 55, 55)
.add(jButton1)
.add(54, 54, 54)
.add(jButton2))
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.add(jLabel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 182, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(91, 91, 91))
.add(layout.createSequentialGroup()
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jLabel2)
.add(jLabel1))
.add(44, 44, 44)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jTextField1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE)
.add(jPasswordField1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE))
.add(78, 78, 78))))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(jLabel3)
.add(40, 40, 40)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel1)
.add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel2)
.add(jPasswordField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 25, Short.MAX_VALUE)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jButton1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 31, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(jButton2))
.add(22, 22, 22))
);

pack();
}// </editor-fold>

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

principale p=new principale();
this.dispose();
p.setVisible(true);
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String log=jTextField1.getText();
String pass=jPasswordField1.getText();
try{
connection c=new connection();
String req "select * from users where Login'"+log+"' and Password='"+pass+"'";
ResultSet rs = c.affichRes(req);
if (rs.next()){
//afficher la fenetre principale
JOptionPane.showMessageDialog(this, "connexion reussie");
this.dispose();
admin pr = new admin();
pr.setVisible(true);
}else
JOptionPane.showMessageDialog(this, "Vérifiez votre login ou mot de passe");

} catch (Exception ex) {
System.out.println("");
}

}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new authentification().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPasswordField jPasswordField1;
private javax.swing.JTextField jTextField1;
// End of variables declaration

}
Commenter la réponse de ouatt121

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.