diff --git a/WEB-INF/src/controleur/Authent.java b/WEB-INF/src/controleur/Authent.java index 6d308e71594c1f7d52002128c6d808a7fe23a9aa..e3a7973101e71b272a5a1a3089f2fec15cff637f 100644 --- a/WEB-INF/src/controleur/Authent.java +++ b/WEB-INF/src/controleur/Authent.java @@ -4,6 +4,9 @@ import java.io.IOException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import org.apache.commons.text.StringEscapeUtils; +import org.apache.commons.text.translate.CharSequenceTranslator; + import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; @@ -20,6 +23,9 @@ public class Authent extends HttpServlet { String action = req.getParameter("action"); String username = req.getParameter("username"); String password = req.getParameter("password"); + + CharSequenceTranslator cst = StringEscapeUtils.ESCAPE_HTML4; + if(username == null || password == null){ req.setAttribute("error", "Vous ne pouvez pas avoir un pseudo ou mot de passe vide !"); req.getRequestDispatcher("/WEB-INF/vue/error.jsp").forward(req, resp); @@ -27,6 +33,7 @@ public class Authent extends HttpServlet { } String hashedPassword; username = username.toLowerCase(); + username = cst.translate(username); MessageDigest md; this.getServletContext(); @@ -69,7 +76,7 @@ public class Authent extends HttpServlet { resp.sendRedirect("navigation?page=accueil"); return; } catch (Exception e) { - req.setAttribute("error", "Nom d'utilisateur déjà pris"); + req.setAttribute("error", "Pseudonyme invalide / Nom d'utilisateur déjà pris"); vue = "WEB-INF/vue/signin.jsp"; } break; diff --git a/WEB-INF/src/controleur/MessageController.java b/WEB-INF/src/controleur/MessageController.java index e21947d3d2fe56971f3f005e28aa204487d0034c..a6502b590f19ff563f574bf7fee16340d094594a 100644 --- a/WEB-INF/src/controleur/MessageController.java +++ b/WEB-INF/src/controleur/MessageController.java @@ -9,6 +9,9 @@ import modele.dao.DaoLike; import modele.dao.DaoMessage; import modele.dto.Like; import modele.dto.Message; +import org.apache.commons.text.StringEscapeUtils; +import org.apache.commons.text.translate.CharSequenceTranslator; + import java.io.IOException; import java.time.LocalDateTime; @@ -17,6 +20,7 @@ import java.time.LocalDateTime; public class MessageController extends HttpServlet { DaoMessage daoMessage = new DaoMessage(); DaoLike daoLike = new DaoLike(); + @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username; @@ -30,12 +34,13 @@ public class MessageController extends HttpServlet { switch (action){ case "send": - String contenue = req.getParameter("message"); + CharSequenceTranslator cst = StringEscapeUtils.ESCAPE_HTML4; + String contenu = cst.translate(req.getParameter("message")); try { int idThread = Integer.parseInt(req.getParameter("thread")); - if (contenue != null && !contenue.isEmpty()) { - Message message = new Message(0, username, idThread, contenue, LocalDateTime.now()); + if (contenu != null && !contenu.isEmpty()) { + Message message = new Message(0, username, idThread, contenu, LocalDateTime.now()); daoMessage.create(message); } vue = "thread?action=open&id=" + idThread; diff --git a/WEB-INF/src/controleur/ThreadController.java b/WEB-INF/src/controleur/ThreadController.java index c595c92c41b9735b3ff1737d288b81003890cdb4..4c79a529e78a5c4f2e9dc915845856a1c01f2874 100644 --- a/WEB-INF/src/controleur/ThreadController.java +++ b/WEB-INF/src/controleur/ThreadController.java @@ -51,7 +51,6 @@ public class ThreadController extends HttpServlet { Follower follow = new Follower(username, idThread); - System.out.println("action : " + action); switch (action){ case "follow": diff --git a/WEB-INF/vue/signin.jsp b/WEB-INF/vue/signin.jsp index 77998178e20416a82137efb03489a70412941b32..a4a21d92d1ade80526c6af03e9b83b2a36b655d0 100644 --- a/WEB-INF/vue/signin.jsp +++ b/WEB-INF/vue/signin.jsp @@ -30,7 +30,11 @@ <div> <div class="mt-2 mb-3"> <p class="mb-1">Pseudonyme</p> +<<<<<<< HEAD <input class="form-control" name="username" pattern="[a-zA-Z0-9_.]{3,24}" type="text" placeholder="pmathieu" maxlength="24" required> +======= + <input class="form-control" name="username" type="text" placeholder="pmathieu" maxlength="24" pattern="\w{3,24}" required> +>>>>>>> refs/remotes/origin/main </div> <div class="mb-3"> <p class="mb-1">Mot de passe</p> diff --git a/lib/commons-lang3-3.17.0.jar b/lib/commons-lang3-3.17.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..f6486b4d7039f22ccf160c8d24ebac26f05bf0de Binary files /dev/null and b/lib/commons-lang3-3.17.0.jar differ diff --git a/lib/commons-text.jar b/lib/commons-text.jar new file mode 100644 index 0000000000000000000000000000000000000000..a8231464949d5e7fb71a14e044767ad1bfa4c27d Binary files /dev/null and b/lib/commons-text.jar differ