Merge branch 'main' of https://gitlab.com/marvin.epip/enchere
This commit is contained in:
@@ -8,6 +8,8 @@ import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
|
|||||||
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
|
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
|
||||||
import org.springframework.jdbc.support.GeneratedKeyHolder;
|
import org.springframework.jdbc.support.GeneratedKeyHolder;
|
||||||
import org.springframework.jdbc.support.KeyHolder;
|
import org.springframework.jdbc.support.KeyHolder;
|
||||||
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||||
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -20,11 +22,13 @@ public class UserRepositoryImpl implements UserRepository {
|
|||||||
|
|
||||||
private final JdbcTemplate jdbcTemplate;
|
private final JdbcTemplate jdbcTemplate;
|
||||||
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
|
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
|
||||||
|
private PasswordEncoder passwordEncoder;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public UserRepositoryImpl(JdbcTemplate jdbcTemplate, NamedParameterJdbcTemplate namedJdbcTemplate) {
|
public UserRepositoryImpl(JdbcTemplate jdbcTemplate, NamedParameterJdbcTemplate namedJdbcTemplate, PasswordEncoder passwordEncoder) {
|
||||||
this.jdbcTemplate = jdbcTemplate;
|
this.jdbcTemplate = jdbcTemplate;
|
||||||
this.namedParameterJdbcTemplate = namedJdbcTemplate;
|
this.namedParameterJdbcTemplate = namedJdbcTemplate;
|
||||||
|
this.passwordEncoder = passwordEncoder;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -64,6 +68,7 @@ public class UserRepositoryImpl implements UserRepository {
|
|||||||
@Override
|
@Override
|
||||||
public void save(UserProfil utilisateur) {
|
public void save(UserProfil utilisateur) {
|
||||||
if (utilisateur.getId() == 0) {
|
if (utilisateur.getId() == 0) {
|
||||||
|
//Création utilisateur
|
||||||
String sql = "INSERT INTO UTILISATEURS (pseudo, nom, prenom, email, telephone, rue, code_postal, ville, mot_de_passe, credit, administrateur) VALUES (:pseudo, :nom, :prenom, :email, :telephone, :rue, :code_postal, :ville, :mot_de_passe, 0, false)";
|
String sql = "INSERT INTO UTILISATEURS (pseudo, nom, prenom, email, telephone, rue, code_postal, ville, mot_de_passe, credit, administrateur) VALUES (:pseudo, :nom, :prenom, :email, :telephone, :rue, :code_postal, :ville, :mot_de_passe, 0, false)";
|
||||||
MapSqlParameterSource parameters = new MapSqlParameterSource();
|
MapSqlParameterSource parameters = new MapSqlParameterSource();
|
||||||
parameters.addValue("pseudo", utilisateur.getPseudo());
|
parameters.addValue("pseudo", utilisateur.getPseudo());
|
||||||
@@ -74,8 +79,7 @@ public class UserRepositoryImpl implements UserRepository {
|
|||||||
parameters.addValue("rue", utilisateur.getRue());
|
parameters.addValue("rue", utilisateur.getRue());
|
||||||
parameters.addValue("code_postal", utilisateur.getCode_postal());
|
parameters.addValue("code_postal", utilisateur.getCode_postal());
|
||||||
parameters.addValue("ville", utilisateur.getVille());
|
parameters.addValue("ville", utilisateur.getVille());
|
||||||
parameters.addValue("mot_de_passe", utilisateur.getPassword());
|
parameters.addValue("mot_de_passe", passwordEncoder.encode(utilisateur.getPassword()));
|
||||||
|
|
||||||
KeyHolder keyHolder = new GeneratedKeyHolder();
|
KeyHolder keyHolder = new GeneratedKeyHolder();
|
||||||
namedParameterJdbcTemplate.update(sql, parameters, keyHolder, new String[] {"no_utilisateur"});
|
namedParameterJdbcTemplate.update(sql, parameters, keyHolder, new String[] {"no_utilisateur"});
|
||||||
if (keyHolder.getKey() != null) {
|
if (keyHolder.getKey() != null) {
|
||||||
|
|||||||
@@ -2,11 +2,13 @@ package fr.eni.enchere.security;
|
|||||||
|
|
||||||
import fr.eni.enchere.bo.UserProfil;
|
import fr.eni.enchere.bo.UserProfil;
|
||||||
import fr.eni.enchere.dal.UserRepository;
|
import fr.eni.enchere.dal.UserRepository;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.core.userdetails.User;
|
import org.springframework.security.core.userdetails.User;
|
||||||
import org.springframework.security.core.userdetails.User.UserBuilder;
|
import org.springframework.security.core.userdetails.User.UserBuilder;
|
||||||
import org.springframework.security.core.userdetails.UserDetails;
|
import org.springframework.security.core.userdetails.UserDetails;
|
||||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||||
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@@ -14,6 +16,7 @@ public class LoginService implements UserDetailsService {
|
|||||||
|
|
||||||
private UserRepository userRep;
|
private UserRepository userRep;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
public LoginService(UserRepository userRep) {
|
public LoginService(UserRepository userRep) {
|
||||||
this.userRep = userRep;
|
this.userRep = userRep;
|
||||||
}
|
}
|
||||||
@@ -22,12 +25,10 @@ public class LoginService implements UserDetailsService {
|
|||||||
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
|
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
|
||||||
// Charger l'utilisateur depuis la base de données
|
// Charger l'utilisateur depuis la base de données
|
||||||
UserProfil utilisateur = userRep.findByUsername(username);
|
UserProfil utilisateur = userRep.findByUsername(username);
|
||||||
|
|
||||||
// Créer un nouvel objet UserBuilder
|
// Créer un nouvel objet UserBuilder
|
||||||
UserBuilder userBuilder = User.builder()
|
UserBuilder userBuilder = User.builder()
|
||||||
.username(utilisateur.getPseudo())
|
.username(utilisateur.getPseudo())
|
||||||
.password(utilisateur.getPassword());
|
.password(utilisateur.getPassword());
|
||||||
|
|
||||||
// Ajouter les rôles en fonction de isAdmin()
|
// Ajouter les rôles en fonction de isAdmin()
|
||||||
if(utilisateur.isAdmin()) {
|
if(utilisateur.isAdmin()) {
|
||||||
userBuilder.roles("ADMIN", "MEMBRE");
|
userBuilder.roles("ADMIN", "MEMBRE");
|
||||||
|
|||||||
16
src/main/java/fr/eni/enchere/security/SecurityConfig.java
Normal file
16
src/main/java/fr/eni/enchere/security/SecurityConfig.java
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
package fr.eni.enchere.security;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||||
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class SecurityConfig {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public PasswordEncoder passwordEncoder() {
|
||||||
|
return new BCryptPasswordEncoder();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user