mirror of
https://github.com/kmitresse/Cards-Rush.git
synced 2026-05-14 09:05:23 +00:00
feet: dev-web - update reset password and token generation
This commit is contained in:
@@ -50,6 +50,7 @@ public class RecoveryPasswordToken {
|
||||
public RecoveryPasswordToken(String token, User user) {
|
||||
this.token = token;
|
||||
this.user = user;
|
||||
this.expiresAt = new Date(new Date().getTime() + 600000);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -23,6 +23,9 @@ import uppa.project.pojo.User;
|
||||
import java.util.Properties;
|
||||
import javax.mail.*;
|
||||
import javax.mail.internet.*;
|
||||
import uppa.project.provider.DotenvProvider;
|
||||
import io.github.cdimascio.dotenv.Dotenv;
|
||||
|
||||
|
||||
@WebServlet(name = "forgottenPasswordServlet", value = "/forgotten-password")
|
||||
public class ForgottenPasswordServlet extends HttpServlet {
|
||||
@@ -64,14 +67,11 @@ public class ForgottenPasswordServlet extends HttpServlet {
|
||||
* @param token
|
||||
*/
|
||||
public void sendRecoveryEmail(String email, String token) {
|
||||
|
||||
String host = "smtp.gmail.com";
|
||||
String port = "587";
|
||||
//TODO: Set up environment variables
|
||||
// String username = System.getenv("MAIL_USERNAME");
|
||||
// String password = System.getenv("MAIL_PASSWORD");
|
||||
String username = "kmitresse@gmail.com";
|
||||
String password = "xwos ujwf cesq ocyt";
|
||||
Dotenv dotEnv = DotenvProvider.getInstance();
|
||||
String host = dotEnv.get("MAIL_HOST");
|
||||
String port = dotEnv.get("MAIL_PORT");
|
||||
String username = dotEnv.get("MAIL_USERNAME");
|
||||
String password = dotEnv.get("MAIL_PASSWORD");
|
||||
|
||||
Properties props = new Properties();
|
||||
props.put("mail.smtp.auth", "true");
|
||||
@@ -87,6 +87,7 @@ public class ForgottenPasswordServlet extends HttpServlet {
|
||||
});
|
||||
|
||||
try {
|
||||
String tomcatHost = dotEnv.get("TOMCAT_HOST");
|
||||
// Création du message
|
||||
Message message = new MimeMessage(session);
|
||||
message.setFrom(new InternetAddress(username));
|
||||
@@ -94,7 +95,7 @@ public class ForgottenPasswordServlet extends HttpServlet {
|
||||
message.setSubject("Réinitialisation de votre mot de passe");
|
||||
message.setText("Bonjour,\n\n" +
|
||||
"Vous avez demandé la réinitialisation de votre mot de passe.\n" +
|
||||
"Pour cela, veuillez cliquer sur le lien suivant : http://localhost:8088/project_war_exploded/reset-password?token=" + token + "\n\n" +
|
||||
"Pour cela, veuillez cliquer sur le lien suivant : http://localhost:"+tomcatHost+"/project_war_exploded/reset-password?token=" + token + "\n\n" +
|
||||
"Cordialement,\n" +
|
||||
"L'équipe CardRush");
|
||||
// Envoi du message
|
||||
|
||||
@@ -19,9 +19,13 @@ public class ResetPasswordServlet extends HttpServlet {
|
||||
|
||||
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
|
||||
|
||||
RecoveryPasswordToken recoveryPasswordToken = findRecoveryToken(request.getParameter("token"));
|
||||
if (recoveryPasswordToken == null) {
|
||||
response.sendRedirect(request.getContextPath() + "/error?code=404");
|
||||
RecoveryPasswordToken token = findRecoveryToken(request.getParameter("token"));
|
||||
if (token == null) {
|
||||
response.sendRedirect(request.getContextPath() + "/forgotten-password?error=invalid-token");
|
||||
return;
|
||||
}
|
||||
if (token.getExpirationDate().compareTo(new java.util.Date()) > 0){
|
||||
response.sendRedirect(request.getContextPath() + "/forgotten-password?error=expired-token");
|
||||
return;
|
||||
}
|
||||
request.getRequestDispatcher("/WEB-INF/views/reset-password.jsp").forward(request, response);
|
||||
@@ -44,7 +48,7 @@ public class ResetPasswordServlet extends HttpServlet {
|
||||
System.out.println(!newPassword.equals(confirmPassword));
|
||||
if (!newPassword.equals(confirmPassword)) {
|
||||
System.out.println("ici");
|
||||
response.sendRedirect(request.getContextPath() + "/reset-password?error=1&token=" + recoveryPasswordToken.getToken());
|
||||
response.sendRedirect(request.getContextPath() + "/reset-password?error=matching-password&token=" + recoveryPasswordToken.getToken());
|
||||
return;
|
||||
}
|
||||
user.setPassword(newPassword);
|
||||
@@ -52,9 +56,9 @@ public class ResetPasswordServlet extends HttpServlet {
|
||||
try {
|
||||
daoJpaUser = new DAO_JPA_User();
|
||||
daoJpaUser.update(user);
|
||||
response.sendRedirect(request.getContextPath() + "/login?success=password-modified");
|
||||
response.sendRedirect(request.getContextPath() + "/login?success=password-reseted");
|
||||
} catch (DAOException e) {
|
||||
response.sendRedirect(request.getContextPath() + "/reset-password?error=2");
|
||||
response.sendRedirect(request.getContextPath() + "/reset-password?error=1");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user