package fr.eni.enchere.security; import fr.eni.enchere.bo.UserProfil; import fr.eni.enchere.dal.UserRepository; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.User.UserBuilder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Component; @Component public class LoginService implements UserDetailsService { private UserRepository userRep; public LoginService(UserRepository userRep) { this.userRep = userRep; } @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { // Charger l'utilisateur depuis la base de données UserProfil utilisateur = userRep.findByUsername(username); // Créer un nouvel objet UserBuilder UserBuilder userBuilder = User.builder() .username(utilisateur.getPseudo()) .password(utilisateur.getPassword()); // Ajouter les rôles en fonction de isAdmin() if(utilisateur.isAdmin()) { userBuilder.roles("ADMIN", "MEMBRE"); } else { userBuilder.roles("MEMBRE"); } // Retourner l'utilisateur UserDetails construit return userBuilder.build(); } }