/** {@inheritDoc} */ @Override public IUtilisateur majMotDePasse(int idUtilisateur, String motDePasse) { IUtilisateur utilisateur = null; String sqlQuery = String.format( "UPDATE %s SET %s=? WHERE %s=?;", BaseDonneeEnum.UTILISATEUR, UtilisateurEnum.MOT_DE_PASSE_UTILISATEUR, UtilisateurEnum.ID_UTILISATEUR); PreparedStatement preparedStatement = this.getBd().openPrepared(sqlQuery); // Cryptage du mot de passe StrongPasswordEncryptor passwordEncryptor = new StrongPasswordEncryptor(); String motDePasseCrypt = passwordEncryptor.encryptPassword(motDePasse); try { int numeroParametre = 1; preparedStatement.setString(numeroParametre, motDePasseCrypt); preparedStatement.setInt(++numeroParametre, idUtilisateur); // On créé une instance Utilisateur avec les informations à notre disposition. utilisateur = new Utilisateur(idUtilisateur); utilisateur.setMotDePasseUtilisateur(motDePasseCrypt); preparedStatement.executeUpdate(); } catch (SQLException e) { LOGGER.warn(e); } this.getBd().closePrepared(preparedStatement); return utilisateur; }
/** {@inheritDoc} */ @Override public IUtilisateur creerUtilisateur( String prenom, String nom, String identifiant, String motDePasse, int numeroEtudiant, int idEntite) { IUtilisateur utilisateur = null; String sqlQuery = String.format( "INSERT INTO %s (%s,%s,%s,%s,%s,%s) VALUES (?,?,?,?,?,?);", BaseDonneeEnum.UTILISATEUR, UtilisateurEnum.PRENOM_UTILISATEUR, UtilisateurEnum.NOM_UTILISATEUR, UtilisateurEnum.IDENTIFIANT_UTILISATEUR, UtilisateurEnum.MOT_DE_PASSE_UTILISATEUR, UtilisateurEnum.NUMERO_ETUDIANT, UtilisateurEnum.ID_ENTITE); PreparedStatement preparedStatement = this.getBd().openPrepared(sqlQuery); // Cryptage du mot de passe StrongPasswordEncryptor passwordEncryptor = new StrongPasswordEncryptor(); String motDePasseCrypt = passwordEncryptor.encryptPassword(motDePasse); ResultSet resultSet = null; try { int numeroParametre = 1; preparedStatement.setString(numeroParametre, prenom); preparedStatement.setString(++numeroParametre, nom); preparedStatement.setString(++numeroParametre, identifiant); preparedStatement.setString(++numeroParametre, motDePasseCrypt); preparedStatement.setInt(++numeroParametre, numeroEtudiant); preparedStatement.setInt(++numeroParametre, idEntite); preparedStatement.executeUpdate(); // On cherche à obtenir l'idUtilisateur généré. resultSet = preparedStatement.getGeneratedKeys(); } catch (SQLException e) { LOGGER.warn(e); } if (resultSet != null) { try { // Si resusltSet n'est pas nul, on accède à la première ligne. resultSet.next(); // On créé une instance Utilisateur avec les informations à notre disposition. utilisateur = new Utilisateur( resultSet.getInt(1), numeroEtudiant, nom, prenom, identifiant, motDePasseCrypt); utilisateur.setEntiteUtilisateur(new Entite(idEntite)); resultSet.close(); } catch (SQLException e) { LOGGER.warn(e); } } this.getBd().closePrepared(preparedStatement); return utilisateur; }
/** {@inheritDoc} */ @Override public IUtilisateur getUtilisateurByIdentifiant(String identifiant) { IUtilisateur utilisateur = null; String sqlQuery = String.format( "SELECT u.%s, u.%s, u.%s, u.%s, u.%s, u.%s, u.%s, e.%s FROM %s u JOIN %s e ON u.%s = e.%s AND u.%s=?;", UtilisateurEnum.ID_UTILISATEUR, UtilisateurEnum.NUMERO_ETUDIANT, UtilisateurEnum.NOM_UTILISATEUR, UtilisateurEnum.PRENOM_UTILISATEUR, UtilisateurEnum.IDENTIFIANT_UTILISATEUR, UtilisateurEnum.MOT_DE_PASSE_UTILISATEUR, UtilisateurEnum.ID_ENTITE, EntiteEnum.NOM_ENTITE, BaseDonneeEnum.UTILISATEUR, BaseDonneeEnum.ENTITE, UtilisateurEnum.ID_ENTITE, EntiteEnum.ID_ENTITE, UtilisateurEnum.IDENTIFIANT_UTILISATEUR); PreparedStatement preparedStatement = this.getBd().openPrepared(sqlQuery); ResultSet resultSet = null; try { preparedStatement.setString(1, identifiant); resultSet = preparedStatement.executeQuery(); } catch (SQLException e) { LOGGER.warn(e); } if (resultSet != null) { try { // Si resusltSet n'est pas nul, on accède à la première ligne. resultSet.next(); // On créé une instance Utilisateur avec les informations à notre disposition. utilisateur = new Utilisateur( resultSet.getInt(UtilisateurEnum.ID_UTILISATEUR.toString()), resultSet.getInt(UtilisateurEnum.NUMERO_ETUDIANT.toString()), resultSet.getString(UtilisateurEnum.NOM_UTILISATEUR.toString()), resultSet.getString(UtilisateurEnum.PRENOM_UTILISATEUR.toString()), resultSet.getString(UtilisateurEnum.IDENTIFIANT_UTILISATEUR.toString()), resultSet.getString(UtilisateurEnum.MOT_DE_PASSE_UTILISATEUR.toString())); // Ainsi qu'une instance d'ENTITE que l'on ajoutera dans Utilisateur IEntite entite = new Entite( resultSet.getInt(UtilisateurEnum.ID_ENTITE.toString()), resultSet.getString(EntiteEnum.NOM_ENTITE.toString())); utilisateur.setEntiteUtilisateur(entite); resultSet.close(); } catch (SQLException e) { LOGGER.warn(e); } } this.getBd().closePrepared(preparedStatement); return utilisateur; }
/** {@inheritDoc} */ @Override public IUtilisateur majUtilisateur( int idUtilisateur, String prenom, String nom, String identifiant, int numeroEtudiant, int idEntite) { IUtilisateur utilisateur = null; String sqlQuery = String.format( "UPDATE %s SET %s=?,%s=?,%s=?,%s=?,%s=? WHERE %s=?;", BaseDonneeEnum.UTILISATEUR, UtilisateurEnum.PRENOM_UTILISATEUR, UtilisateurEnum.NOM_UTILISATEUR, UtilisateurEnum.IDENTIFIANT_UTILISATEUR, UtilisateurEnum.NUMERO_ETUDIANT, UtilisateurEnum.ID_ENTITE, UtilisateurEnum.ID_UTILISATEUR); PreparedStatement preparedStatement = this.getBd().openPrepared(sqlQuery); try { int numeroParametre = 1; preparedStatement.setString(numeroParametre, prenom); preparedStatement.setString(++numeroParametre, nom); preparedStatement.setString(++numeroParametre, identifiant); preparedStatement.setInt(++numeroParametre, numeroEtudiant); preparedStatement.setInt(++numeroParametre, idEntite); preparedStatement.setInt(++numeroParametre, idUtilisateur); preparedStatement.executeUpdate(); // On créé une instance Utilisateur avec les informations à notre disposition. utilisateur = new Utilisateur(idUtilisateur, numeroEtudiant, nom, prenom, identifiant, ""); utilisateur.setEntiteUtilisateur(new Entite(idEntite)); } catch (SQLException e) { LOGGER.warn(e); } this.getBd().closePrepared(preparedStatement); return utilisateur; }
/** {@inheritDoc} */ @Override public List<IUtilisateur> getListUtilisateur() { List<IUtilisateur> utilisateurList = new ArrayList<>(); String sqlQuery = String.format("SELECT * FROM %s;", BaseDonneeEnum.UTILISATEUR); PreparedStatement preparedStatement = this.getBd().openPrepared(sqlQuery); ResultSet resultSet = null; try { resultSet = preparedStatement.executeQuery(); } catch (SQLException e) { LOGGER.warn(e); } if (resultSet != null) { try { // Tant qu'il reste des lignes dans le resultSet while (resultSet.next()) { // On créé une instance d'utilisateur avec les informations à notre disposition, et on // l'ajoute IUtilisateur utilisateur = new Utilisateur( resultSet.getInt(UtilisateurEnum.ID_UTILISATEUR.toString()), resultSet.getInt(UtilisateurEnum.NUMERO_ETUDIANT.toString()), resultSet.getString(UtilisateurEnum.NOM_UTILISATEUR.toString()), resultSet.getString(UtilisateurEnum.PRENOM_UTILISATEUR.toString()), resultSet.getString(UtilisateurEnum.IDENTIFIANT_UTILISATEUR.toString()), ""); utilisateur.setEntiteUtilisateur( new Entite(resultSet.getInt(UtilisateurEnum.ID_ENTITE.toString()))); utilisateurList.add(utilisateur); } resultSet.close(); } catch (SQLException e) { LOGGER.warn(e); } } this.getBd().closePrepared(preparedStatement); return utilisateurList; }
@Override public void actionPerformed(ActionEvent e) { this.log = Main.appli.login.log; this.mdp = Main.appli.login.mdp; login = this.log.getText(); motdepasse = new String(this.mdp.getPassword()); if ("".equals(login) && "".equals(motdepasse)) { JOptionPane.showMessageDialog( null, "Veuillez remplir les champs Identifiant et Mot de passe.", "Erreur", JOptionPane.ERROR_MESSAGE); } else if ("".equals(login)) { JOptionPane.showMessageDialog( null, "Veuillez remplir le champs Identifiant.", "Erreur", JOptionPane.ERROR_MESSAGE); } else if ("".equals(motdepasse)) { JOptionPane.showMessageDialog( null, "Veuillez remplir le champs Mot de passe.", "Erreur", JOptionPane.ERROR_MESSAGE); } else { try { utilisateur = service.getUtilisateurByIdentifiant(login); } catch (RemoteException e1) { LOGGER.fatal(e1); } if (utilisateur == null) { JOptionPane.showMessageDialog( null, "L'identifiant n'est pas valide", "Erreur", JOptionPane.ERROR_MESSAGE); } else { if (utilisateur.validerMotDePasseUtilisateur(motdepasse)) { JOptionPane.showMessageDialog( null, "identifiant et mot de passe valides", "Information", JOptionPane.INFORMATION_MESSAGE); changerVueLogin(); } else { JOptionPane.showMessageDialog( null, "Le mot de passe n'est pas valide", "Erreur", JOptionPane.ERROR_MESSAGE); } } } }