Gestion d'authentification
This commit is contained in:
84
src/main/java/com/test/bdd/SalarieMysql.java
Normal file
84
src/main/java/com/test/bdd/SalarieMysql.java
Normal file
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||
*/
|
||||
package com.test.bdd;
|
||||
|
||||
import com.test.beans.Salarie;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author steve.maingana
|
||||
*/
|
||||
public class SalarieMysql {
|
||||
// private Connection laConnexion;
|
||||
private Statement stmt = null;
|
||||
private ResultSet result = null;
|
||||
|
||||
// public ClientMysql() {
|
||||
Connection laConnexion = Connexion.getConnect("192.168.100.100", "bdclient", "adminBDClient", "mdpBDClient");
|
||||
// }
|
||||
|
||||
public ArrayList<Salarie> readAll() {
|
||||
ArrayList<Salarie> salaries = new ArrayList<Salarie>();
|
||||
|
||||
try {
|
||||
stmt = laConnexion.createStatement();
|
||||
|
||||
result = stmt.executeQuery("SELECT * FROM salarie");
|
||||
while (result.next()) {
|
||||
Salarie salarie = new Salarie(
|
||||
result.getInt("id"),
|
||||
result.getString("login"),
|
||||
result.getString("mdp"),
|
||||
result.getInt("admin")
|
||||
);
|
||||
|
||||
salaries.add(salarie);
|
||||
}
|
||||
|
||||
result.close();
|
||||
stmt.close();
|
||||
} catch (SQLException ex) {
|
||||
System.out.println("SQLException : " + ex.getMessage());
|
||||
System.out.println("SQLState : " + ex.getSQLState());
|
||||
System.out.println("Code erreur : " + ex.getErrorCode());
|
||||
}
|
||||
|
||||
return salaries;
|
||||
}
|
||||
|
||||
public Salarie lireSalarie(String login, String mdp) {
|
||||
Salarie salarie = null;
|
||||
|
||||
try {
|
||||
PreparedStatement preparedStmt = laConnexion.prepareStatement("SELECT * FROM salarie WHERE login = ? AND mdp = ?");
|
||||
|
||||
preparedStmt.setString(1, login);
|
||||
preparedStmt.setString(2, mdp);
|
||||
|
||||
result = preparedStmt.executeQuery();
|
||||
if (result.next()) {
|
||||
salarie = new Salarie(
|
||||
result.getInt("id"),
|
||||
result.getString("login"),
|
||||
result.getString("mdp"),
|
||||
result.getInt("admin")
|
||||
);
|
||||
}
|
||||
} catch (SQLException ex) {
|
||||
System.out.println("SQLException : " + ex.getMessage());
|
||||
System.out.println("SQLState : " + ex.getSQLState());
|
||||
System.out.println("Code erreur : " + ex.getErrorCode());
|
||||
}
|
||||
|
||||
return salarie;
|
||||
}
|
||||
}
|
||||
|
||||
55
src/main/java/com/test/beans/Salarie.java
Normal file
55
src/main/java/com/test/beans/Salarie.java
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
||||
*/
|
||||
package com.test.beans;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author steve.maingana
|
||||
*/
|
||||
public class Salarie {
|
||||
private int id;
|
||||
private String login;
|
||||
private String mdp;
|
||||
private boolean admin;
|
||||
|
||||
public Salarie(int id, String login, String mdp, int admin) {
|
||||
this.id = id;
|
||||
this.login = login;
|
||||
this.mdp = mdp;
|
||||
this.admin = admin > 0;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getLogin() {
|
||||
return login;
|
||||
}
|
||||
|
||||
public void setLogin(String login) {
|
||||
this.login = login;
|
||||
}
|
||||
|
||||
public String getMdp() {
|
||||
return mdp;
|
||||
}
|
||||
|
||||
public void setMdp(String mdp) {
|
||||
this.mdp = mdp;
|
||||
}
|
||||
|
||||
public boolean isAdmin() {
|
||||
return admin;
|
||||
}
|
||||
|
||||
public void setAdmin(boolean admin) {
|
||||
this.admin = admin;
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,8 @@
|
||||
*/
|
||||
package com.test.forms;
|
||||
|
||||
import com.test.bdd.SalarieMysql;
|
||||
import com.test.beans.Salarie;
|
||||
import com.test.beans.User;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
|
||||
@@ -24,10 +26,27 @@ public class AuthentifForm {
|
||||
this.resultat = resultat;
|
||||
}
|
||||
|
||||
public boolean existeUser(HttpServletRequest request) {
|
||||
SalarieMysql salarieDB = new SalarieMysql();
|
||||
String pseudo = (String) request.getParameter("pseudo");
|
||||
String mdp = (String) request.getParameter("mdp");
|
||||
Salarie user = salarieDB.lireSalarie(pseudo, mdp);
|
||||
|
||||
boolean existe = user != null;
|
||||
|
||||
if (!existe) {
|
||||
this.setResultat("Il y a une erreur dans le nom d'utilisateur ou le mot de passe");
|
||||
}
|
||||
|
||||
return existe;
|
||||
}
|
||||
|
||||
public boolean controlerAdmin(HttpServletRequest request) {
|
||||
User admin = new User("Lovelace", "Ada");
|
||||
User userSaisi = new User(request.getParameter("pseudo"), request.getParameter("mdp"));
|
||||
boolean estAdmin = admin.equals(userSaisi);
|
||||
SalarieMysql salarieDB = new SalarieMysql();
|
||||
String pseudo = (String) request.getParameter("pseudo");
|
||||
String mdp = (String) request.getParameter("mdp");
|
||||
Salarie user = salarieDB.lireSalarie(pseudo, mdp);
|
||||
boolean estAdmin = user.isAdmin();
|
||||
|
||||
if (estAdmin) {
|
||||
this.setResultat("Vous êtes administrateur");
|
||||
|
||||
@@ -13,6 +13,7 @@ import jakarta.servlet.annotation.WebServlet;
|
||||
import jakarta.servlet.http.HttpServlet;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -78,21 +79,21 @@ public class AuthentifServlet extends HttpServlet {
|
||||
@Override
|
||||
protected void doPost(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
|
||||
HttpSession maSession = request.getSession();
|
||||
String pseudo = (String) request.getParameter("pseudo");
|
||||
String mdp = (String) request.getParameter("mdp");
|
||||
AuthentifForm authentification = new AuthentifForm();
|
||||
maSession.setAttribute("isAuthentified", false);
|
||||
|
||||
if (!pseudo.isBlank() && !mdp.isBlank()) {
|
||||
if (pseudo.equals(this.monPseudo) && mdp.equals(this.monMdp)) {
|
||||
request.setAttribute("login", true);
|
||||
if (authentification.existeUser(request)) {
|
||||
boolean isAdmin = authentification.controlerAdmin(request);
|
||||
request.setAttribute("admin", isAdmin);
|
||||
maSession.setAttribute("isAuthentified", true);
|
||||
}
|
||||
}
|
||||
|
||||
AuthentifForm authentification = new AuthentifForm();
|
||||
boolean isAdmin = authentification.controlerAdmin(request);
|
||||
|
||||
request.setAttribute("authentification", authentification);
|
||||
request.setAttribute("admin", isAdmin);
|
||||
|
||||
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/accueilVue.jsp");
|
||||
dispatcher.forward(request, response);
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import jakarta.servlet.annotation.WebServlet;
|
||||
import jakarta.servlet.http.HttpServlet;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
@@ -62,6 +63,12 @@ public class ListeServlet extends HttpServlet {
|
||||
@Override
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
HttpSession maSession = request.getSession();
|
||||
boolean isAuthentified = (maSession.getAttribute("isAuthentified") != null) ? (boolean) maSession.getAttribute("isAuthentified") : false;
|
||||
if (!isAuthentified) {
|
||||
response.sendRedirect("/Test2Jakarta/Accueil");
|
||||
return;
|
||||
}
|
||||
ClientMysql clientDB = new ClientMysql();
|
||||
ArrayList<Client> clients = clientDB.readAll();
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@ import jakarta.servlet.annotation.WebServlet;
|
||||
import jakarta.servlet.http.HttpServlet;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -61,6 +63,13 @@ public class NouveauServlet extends HttpServlet {
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
// processRequest(request, response);
|
||||
HttpSession maSession = request.getSession();
|
||||
boolean isAuthentified = (maSession.getAttribute("isAuthentified") != null) ? (boolean) maSession.getAttribute("isAuthentified") : false;
|
||||
if (!isAuthentified) {
|
||||
response.sendRedirect("/Test2Jakarta/Accueil");
|
||||
return;
|
||||
}
|
||||
|
||||
request.setAttribute("new_client", false);
|
||||
getServletContext().getRequestDispatcher("/WEB-INF/nouveauClientVue.jsp").forward(request, response);
|
||||
}
|
||||
@@ -80,7 +89,16 @@ public class NouveauServlet extends HttpServlet {
|
||||
NouveauClientForm nouveauClient = new NouveauClientForm();
|
||||
int idClient = nouveauClient.verifierClient(request);
|
||||
request.setAttribute("new_client", idClient > -1);
|
||||
|
||||
if (idClient > -1) {
|
||||
HttpSession maSession = request.getSession();
|
||||
ArrayList<Integer> lesNouveauxClients = (ArrayList<Integer>) maSession.getAttribute("lesNvxClients");
|
||||
if (lesNouveauxClients == null) {
|
||||
lesNouveauxClients = new ArrayList<>();
|
||||
}
|
||||
|
||||
lesNouveauxClients.add(idClient);
|
||||
maSession.setAttribute("lesNvxClients", lesNouveauxClients);
|
||||
response.sendRedirect("/Test2Jakarta/ListeClients");
|
||||
} else {
|
||||
getServletContext().getRequestDispatcher("/WEB-INF/nouveauClientVue.jsp").forward(request, response);
|
||||
|
||||
Reference in New Issue
Block a user