patch fin projet

This commit is contained in:
jleroy
2024-05-02 14:41:32 +02:00
parent e576d52dfb
commit d61797ba02
3 changed files with 28 additions and 14 deletions

View File

@@ -48,7 +48,6 @@ public class AccueilController {
public String viewAccueil(HttpServletRequest request, @AuthenticationPrincipal UserDetails userDetails, public String viewAccueil(HttpServletRequest request, @AuthenticationPrincipal UserDetails userDetails,
@RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "6") int size, Model model, @RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "6") int size, Model model,
HttpSession session) { HttpSession session) {
logger.error("test du logger");
// Récupérer les critères de recherche de la session // Récupérer les critères de recherche de la session
String searchTitle = (String) session.getAttribute("searchTitle"); String searchTitle = (String) session.getAttribute("searchTitle");

View File

@@ -21,7 +21,7 @@ import java.util.Calendar;
@Primary @Primary
public class ForgotPasswordRepositoryImpl implements ForgotPasswordRepository { public class ForgotPasswordRepositoryImpl implements ForgotPasswordRepository {
static final String keychain = "0123456789azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN" ; static final String keychain = "0123456789azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN";
static SecureRandom randomValue = new SecureRandom(); static SecureRandom randomValue = new SecureRandom();
@Autowired @Autowired
@@ -65,11 +65,7 @@ public class ForgotPasswordRepositoryImpl implements ForgotPasswordRepository {
@Override @Override
public void setForgotPasswords(String email) { public void setForgotPasswords(String email) {
//Générer un code String token = TokenGenreate();
StringBuilder linkCreate = new StringBuilder(50);
for (int i = 0; i < 50; i ++){
linkCreate.append(keychain.charAt(randomValue.nextInt(keychain.length())));
}
//Récupérer la date actuelle plus 10 minutes en plus //Récupérer la date actuelle plus 10 minutes en plus
Calendar dateNow = Calendar.getInstance(); Calendar dateNow = Calendar.getInstance();
Calendar dateAgo = Calendar.getInstance(); Calendar dateAgo = Calendar.getInstance();
@@ -78,18 +74,39 @@ public class ForgotPasswordRepositoryImpl implements ForgotPasswordRepository {
String sql = "INSERT INTO FORGOT (email, lien, dateCreate, dateExpire) VALUES (:email, :lien, :dateCreate, :dateExpire)"; String sql = "INSERT INTO FORGOT (email, lien, dateCreate, dateExpire) VALUES (:email, :lien, :dateCreate, :dateExpire)";
MapSqlParameterSource parameters = new MapSqlParameterSource(); MapSqlParameterSource parameters = new MapSqlParameterSource();
parameters.addValue("email", email); parameters.addValue("email", email);
parameters.addValue("lien", linkCreate.toString()); parameters.addValue("lien", token);
parameters.addValue("dateCreate", dateNow.getTime()); parameters.addValue("dateCreate", dateNow.getTime());
parameters.addValue("dateExpire", dateAgo.getTime()); parameters.addValue("dateExpire", dateAgo.getTime());
namedParameterJdbcTemplate.update(sql, parameters); namedParameterJdbcTemplate.update(sql, parameters);
//Envoyer un email //Envoyer un email
String link = "https://eni.enchere.horya.fr/forgotPassword?link=" + linkCreate.toString(); String link = "https://eni.enchere.horya.fr/forgotPassword?link=" + token;
String linkLocal = "http://localhost:8800/forgotPassword?link=" + linkCreate.toString(); String linkLocal = "http://localhost:8800/forgotPassword?link=" + token;
SimpleMailMessage message = new SimpleMailMessage(); SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("support@horya.fr"); message.setFrom("support@horya.fr");
message.setTo(email); message.setTo(email);
message.setSubject("ENI Enchere - Demmande de changement de mot de passe"); message.setSubject("ENI Enchere - Demmande de changement de mot de passe");
message.setText("Bonjour,\n\nVous avez demandé une réinitialisation de votre mot de passe. Veuillez utiliser le lien suivant pour procéder à la réinitialisation : " + link + "\n\n" + linkLocal); message.setText("Bonjour,\n\nVous avez demandé une réinitialisation de votre mot de passe. Veuillez utiliser le lien suivant pour procéder à la réinitialisation : " + link + "\nOU\n" + linkLocal);
javaMailSender.send(message); javaMailSender.send(message);
} }
private String TokenGenreate(){
//Déclaration de variable
StringBuilder linkCreate = new StringBuilder(50);
String sql = "SELECT * FROM FORGOT WHERE lien = ?";
boolean isValide = false;
//Traitement
while (isValide == false){
//Générer un code
for (int i = 0; i < 50; i ++){
linkCreate.append(keychain.charAt(randomValue.nextInt(keychain.length())));
}
//Vérifier existance dans la base de donnée
try {
jdbcTemplate.queryForObject(sql, new ForgotPasswordRepositoryImpl.ForgotPasswordRowMapper(), linkCreate.toString());
} catch (EmptyResultDataAccessException e) {
isValide = true;
}
}
return linkCreate.toString();
}
} }

View File

@@ -10,11 +10,9 @@ import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher; import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
import static javax.management.Query.and;
@Configuration @Configuration
@EnableWebSecurity @EnableWebSecurity
public class WebSecurityConfig{ public class WebSecurityConfig {
@Bean @Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {