From 3103e46acabde881358fc4af9ad3e1cfdd113d6c Mon Sep 17 00:00:00 2001 From: Florine Lefebvre <florine.lefebvre.etu@univ-lille.fr> Date: Thu, 6 Mar 2025 18:06:49 +0100 Subject: [PATCH] modification du mdp possible --- WEB-INF/src/controleur/Account.java | 29 +++++++++++++++++++++++++++-- WEB-INF/vue/compte.jsp | 6 +++++- WEB-INF/vue/creerFil.jsp | 4 ++-- 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/WEB-INF/src/controleur/Account.java b/WEB-INF/src/controleur/Account.java index 46f9664..0b3f559 100644 --- a/WEB-INF/src/controleur/Account.java +++ b/WEB-INF/src/controleur/Account.java @@ -1,6 +1,8 @@ package controleur; import java.io.IOException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; @@ -34,10 +36,33 @@ public class Account extends HttpServlet{ case "update": String firstname = req.getParameter("firstname"); String lastname = req.getParameter("lastname"); + String password = req.getParameter("password"); User user = daoUser.findByUsername(username); - user.setFirstname(firstname); - user.setLastname(lastname); + if(!firstname.equals("")) user.setFirstname(firstname); + if(!lastname.equals("")) user.setLastname(lastname); + if(!password.equals("")){ + String hashedPassword; + + MessageDigest md; + this.getServletContext(); + try { + md = MessageDigest.getInstance("MD5"); + md.update(password.getBytes()); + byte[] byteOfPasswordMD = md.digest(); + StringBuilder sb = new StringBuilder(); + for (byte b : byteOfPasswordMD) { + sb.append(String.format("%02x", b)); + } + hashedPassword = sb.toString(); + } catch (NoSuchAlgorithmException e) { + req.setAttribute("error", "Problème lors du hashage du mot de passe"); + req.getRequestDispatcher("/WEB-INF/vue/error.jsp").forward(req, resp); + return; + } + + user.setPassword(hashedPassword); + } daoUser.update(user); resp.sendRedirect("navigation?page=compte"); break; diff --git a/WEB-INF/vue/compte.jsp b/WEB-INF/vue/compte.jsp index 4007fad..24c468c 100644 --- a/WEB-INF/vue/compte.jsp +++ b/WEB-INF/vue/compte.jsp @@ -82,6 +82,10 @@ </p> <input class="form-control" name="username" type="text" value="<%= username %>" disabled> </div> + <div class="mt-2 mb-3"> + <p class="mb-1">Mot de passe</p> + <input class="form-control" name="password" type="password" placeholder="••••••••••" maxlength="50"> + </div> <div class="mt-2 mb-3"> <p class="mb-1">Prénom</p> <input class="form-control" name="firstname" type="text" value="<%= user.getFirstname() %>" maxlength="50"> @@ -108,7 +112,7 @@ <a class="ms-3 align-self-center btn btn-success" href="navigation?page=creerFil">Créer un fil <i class="bi-plus-square-fill"></i></a> </div> </div> - <% } else {%> + <% } else { %> <% for(Thread thread : daoThread.findByCreator(username)){ %> diff --git a/WEB-INF/vue/creerFil.jsp b/WEB-INF/vue/creerFil.jsp index be14c35..1a3f162 100644 --- a/WEB-INF/vue/creerFil.jsp +++ b/WEB-INF/vue/creerFil.jsp @@ -68,8 +68,8 @@ <input class="form-control" name="username" type="text" value="<%= (String) session.getAttribute("username")%>" disabled> </div> </div> - <div class="mt-5 d-flex flex-column justify-content-center"> - <input class="btn btn-primary flex-fill" type="submit" value="Créer un fil"> + <div class="mt-5 d-flex justify-content-center"> + <input class="btn btn-primary" type="submit" value="Créer un fil"> </div> </form> </div> -- GitLab