diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/bean/LoginBean.java b/S2/DevWeb/Projet/src/main/java/uppa/project/bean/LoginBean.java index f62777b..babbe1d 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/bean/LoginBean.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/bean/LoginBean.java @@ -5,6 +5,8 @@ import uppa.project.database.dao.DAO; import uppa.project.database.dao.DAOException; import uppa.project.database.dao.jpa.Game_JPA_DAO_Factory; import uppa.project.database.pojo.User; +import uppa.project.json.HttpResponse; +import uppa.project.json.HttpResponseCode; public class LoginBean implements Serializable { @@ -14,6 +16,8 @@ public class LoginBean implements Serializable { private String password; private User user; + private HttpResponse error; + public LoginBean() { } @@ -23,27 +27,28 @@ public class LoginBean implements Serializable { } public boolean validate() { + Game_JPA_DAO_Factory factory = new Game_JPA_DAO_Factory(); try { DAO userDao = factory.getDAOUser(); User[] user = userDao.findByField("username", username); + System.out.println(user.length); for (User u : user) { - if (u.getUsername().equals(username)) { + if (u.getUsername().equals(username) && u.verifyPassword(password)) { this.user = u; return true; } } } catch (DAOException e) { - throw new RuntimeException(e); + error = new HttpResponse(HttpResponseCode.INTERNAL_SERVER_ERROR,"Une erreur est survenue (DB_CONNECTION_ERROR:001)"); + return false; } - return false; - } - public User getUser() { - return user; + error = new HttpResponse(HttpResponseCode.NOT_FOUND,"Le nom d'utilisateur ou le mot de passe est incorrect."); + return false; } public LoginBean setUsername(String username) { @@ -55,4 +60,12 @@ public class LoginBean implements Serializable { this.password = password; return this; } + + public User getUser() { + return user; + } + + public HttpResponse getError() { + return error; + } } diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/bean/RegisterBean.java b/S2/DevWeb/Projet/src/main/java/uppa/project/bean/RegisterBean.java index 25d5d8f..c2ddc3b 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/bean/RegisterBean.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/bean/RegisterBean.java @@ -10,6 +10,8 @@ import uppa.project.database.dao.DAOException; import uppa.project.database.dao.EntityManagerProvider; import uppa.project.database.dao.jpa.Game_JPA_DAO_Factory; import uppa.project.database.pojo.User; +import uppa.project.json.HttpResponse; +import uppa.project.json.HttpResponseCode; public class RegisterBean implements Serializable { @@ -20,7 +22,8 @@ public class RegisterBean implements Serializable { private String password; private String birth; private String gender; - private String errorMessage; + + private HttpResponse error; public RegisterBean() { } @@ -44,18 +47,18 @@ public class RegisterBean implements Serializable { // Check if the username is already taken User[] users = userDAO.findByField("username", username); if (users.length > 0) { - errorMessage = "Ce nom d'utilisateur est déjà pris"; + error = new HttpResponse(HttpResponseCode.UNAUTHORIZED, "Ce nom d'utilisateur est déjà pris"); return false; } // Check if the email is already taken users = userDAO.findByField("email", email); if (users.length > 0) { - errorMessage = "Cet email est déjà utilisé"; + error = new HttpResponse(HttpResponseCode.UNAUTHORIZED, "Cet email est déjà utilisé"); return false; } - } catch(DAOException e) { - errorMessage = "Une erreur est survenue (DB_CONNECTION_ERROR)"; + } catch (DAOException e) { + error = new HttpResponse(HttpResponseCode.INTERNAL_SERVER_ERROR, "Une erreur est survenue (DB_CONNECTION_ERROR:001)"); return false; } @@ -67,7 +70,7 @@ public class RegisterBean implements Serializable { try { user.setGender(User.Gender.valueOf(gender)); } catch (IllegalArgumentException e) { - errorMessage = "Le genre n'est pas valide"; + error = new HttpResponse(HttpResponseCode.UNAUTHORIZED, "Le genre n'est pas valide"); return false; } @@ -78,7 +81,7 @@ public class RegisterBean implements Serializable { Date date = Date.from(localDate.atStartOfDay(defaultZoneId).toInstant()); user.setBirth(date); } catch (Exception e) { - errorMessage = "La date de naissance n'est pas valide"; + error = new HttpResponse(HttpResponseCode.UNAUTHORIZED, "La date de naissance n'est pas valide"); return false; } @@ -90,7 +93,8 @@ public class RegisterBean implements Serializable { userDAO.create(user); entityManager.getTransaction().commit(); return true; - } catch(DAOException e) { + } catch (DAOException e) { + error = new HttpResponse(HttpResponseCode.INTERNAL_SERVER_ERROR, "Une erreur est survenue (DB_CONNECTION_ERROR:002)"); entityManager.getTransaction().rollback(); } return false; @@ -121,7 +125,7 @@ public class RegisterBean implements Serializable { return this; } - public String getErrorMessage() { - return errorMessage; + public HttpResponse getError() { + return error; } } diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/web/servlet/LoginServlet.java b/S2/DevWeb/Projet/src/main/java/uppa/project/web/servlet/LoginServlet.java index 2674e2c..39cb9d3 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/web/servlet/LoginServlet.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/web/servlet/LoginServlet.java @@ -46,10 +46,8 @@ public class LoginServlet extends HttpServlet { httpResponse = new HttpResponse(HttpResponseCode.OK, "Login success"); } else { - httpResponse = new HttpResponse(HttpResponseCode.UNAUTHORIZED, "Erreur de connexion: Le nom d'utilisateur ou le " + - "mot de passe est incorrect."); + httpResponse = loginBean.getError(); } - out.println(gson.toJson(httpResponse)); out.flush(); } diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/web/servlet/RegisterServlet.java b/S2/DevWeb/Projet/src/main/java/uppa/project/web/servlet/RegisterServlet.java index a1688dd..6b68a8d 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/web/servlet/RegisterServlet.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/web/servlet/RegisterServlet.java @@ -51,7 +51,7 @@ public class RegisterServlet extends HttpServlet { "Register success" ); } else { - httpResponse = new HttpResponse(HttpResponseCode.UNAUTHORIZED, registerBean.getErrorMessage()); + httpResponse = registerBean.getError(); } out.println(gson.toJson(httpResponse));