mirror of
https://github.com/kmitresse/Cards-Rush.git
synced 2026-05-16 09:05:28 +00:00
feat: devWeb - update reset password page
This commit is contained in:
@@ -1,16 +1,22 @@
|
||||
package uppa.project.web.servlet;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import jakarta.servlet.ServletException;
|
||||
import jakarta.servlet.annotation.WebServlet;
|
||||
import jakarta.servlet.http.HttpServlet;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import uppa.project.bean.RegisterBean;
|
||||
import uppa.project.bean.ResetPasswordBean;
|
||||
import uppa.project.database.dao.DAOException;
|
||||
import uppa.project.database.dao.jpa.DAO_JPA_RecoveryPasswordToken;
|
||||
import uppa.project.database.dao.jpa.DAO_JPA_User;
|
||||
import uppa.project.database.pojo.RecoveryPasswordToken;
|
||||
import uppa.project.database.pojo.User;
|
||||
import uppa.project.json.HttpResponse;
|
||||
import uppa.project.json.HttpResponseCode;
|
||||
|
||||
@WebServlet(name = "resetPasswordServlet", value = "/reset-password")
|
||||
public class ResetPasswordServlet extends HttpServlet {
|
||||
@@ -20,11 +26,11 @@ public class ResetPasswordServlet extends HttpServlet {
|
||||
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
|
||||
RecoveryPasswordToken token = findRecoveryToken(request.getParameter("token"));
|
||||
if (token == null) {
|
||||
response.sendRedirect(request.getContextPath() + "/forgotten-password?error=invalid-token");
|
||||
request.getRequestDispatcher("/WEB-INF/pages/invalid-token-password.jsp").forward(request, response);
|
||||
return;
|
||||
}
|
||||
if (token.getExpirationDate().compareTo(new java.util.Date()) < 0){
|
||||
response.sendRedirect(request.getContextPath() + "/forgotten-password?error=expired-token");
|
||||
request.getRequestDispatcher("/WEB-INF/pages/expired-token-password.jsp").forward(request, response);
|
||||
return;
|
||||
}
|
||||
request.setAttribute("current", "reset-password");
|
||||
@@ -39,28 +45,28 @@ public class ResetPasswordServlet extends HttpServlet {
|
||||
* @throws IOException
|
||||
*/
|
||||
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||
RecoveryPasswordToken recoveryPasswordToken = findRecoveryToken(request.getParameter("token"));
|
||||
response.setContentType("application/json");
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
PrintWriter out = response.getWriter();
|
||||
|
||||
User user = recoveryPasswordToken.getUser();
|
||||
String newPassword = request.getParameter("newPassword");
|
||||
String confirmPassword = request.getParameter("confirmPassword");
|
||||
System.out.println("newPassword: " + newPassword);
|
||||
System.out.println("confirmPassword: " + confirmPassword);
|
||||
System.out.println(!newPassword.equals(confirmPassword));
|
||||
if (!newPassword.equals(confirmPassword)) {
|
||||
System.out.println("ici");
|
||||
response.sendRedirect(request.getContextPath() + "/reset-password?error=matching-password&token=" + recoveryPasswordToken.getToken());
|
||||
return;
|
||||
}
|
||||
user.setPassword(newPassword);
|
||||
DAO_JPA_User daoJpaUser = null;
|
||||
try {
|
||||
daoJpaUser = new DAO_JPA_User();
|
||||
daoJpaUser.update(user);
|
||||
response.sendRedirect(request.getContextPath() + "/login?success=password-reseted");
|
||||
} catch (DAOException e) {
|
||||
response.sendRedirect(request.getContextPath() + "/reset-password?error=1");
|
||||
ResetPasswordBean resetPasswordBean = new ResetPasswordBean()
|
||||
.setToken(request.getParameter("token"))
|
||||
.setPassword(request.getParameter("password"))
|
||||
;
|
||||
|
||||
Gson gson = new Gson();
|
||||
HttpResponse httpResponse;
|
||||
if (resetPasswordBean.validate()) {
|
||||
httpResponse = new HttpResponse(
|
||||
HttpResponseCode.OK,
|
||||
"Register success"
|
||||
);
|
||||
} else {
|
||||
httpResponse = new HttpResponse(HttpResponseCode.INTERNAL_SERVER_ERROR, resetPasswordBean.getErrorMessage());
|
||||
}
|
||||
|
||||
out.println(gson.toJson(httpResponse));
|
||||
out.flush();
|
||||
}
|
||||
|
||||
public static RecoveryPasswordToken findRecoveryToken(String token) {
|
||||
|
||||
Reference in New Issue
Block a user