feat : ajout fonctionnalité login

This commit is contained in:
2025-12-01 18:09:42 +01:00
parent 6f9bbe47ab
commit 915f7a06f9
7 changed files with 62 additions and 63 deletions

View File

@@ -2,6 +2,9 @@ package local.epul4a.fotosharing.security;
import local.epul4a.fotosharing.model.Utilisateur;
import local.epul4a.fotosharing.repository.UtilisateurRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.stereotype.Service;
@@ -9,16 +12,19 @@ import org.springframework.stereotype.Service;
@Service
public class CustomUserDetailsService implements UserDetailsService {
private final UtilisateurRepository utilisateurRepository;
public CustomUserDetailsService(UtilisateurRepository utilisateurRepository) {
this.utilisateurRepository = utilisateurRepository;
}
@Autowired
private UtilisateurRepository utilisateurRepository;
@Override
public CustomUserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
Utilisateur u = utilisateurRepository.findByEmail(username)
.orElseThrow(() -> new UsernameNotFoundException("Utilisateur introuvable: " + username));
return new CustomUserDetails(u);
public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
Utilisateur utilisateur = utilisateurRepository.findByEmail(email)
.orElseThrow(() -> new UsernameNotFoundException("Utilisateur non trouvé : " + email));
return User.builder()
.username(utilisateur.getEmail())
.password(utilisateur.getMotDePasse()) // Le hash BCrypt depuis la BD
.disabled(!utilisateur.isActif())
.authorities("USER")
.build();
}
}