diff --git a/src/main/java/com/projet/projetIndu/controllers/LoginController.java b/src/main/java/com/projet/projetIndu/controllers/LoginController.java
deleted file mode 100644
index 6e23cc15c7a8e0cdb32104b6cfaa477fbb1fec67..0000000000000000000000000000000000000000
--- a/src/main/java/com/projet/projetIndu/controllers/LoginController.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.projet.projetIndu.controllers;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-
-@Controller
-public class LoginController {
-
-    @GetMapping("/login")
-    public String showLoginForm() {
-        return "login"; // Correspond à login.html
-    }
-}
diff --git a/src/main/java/com/projet/projetIndu/security/CustomUserDetailsService.java b/src/main/java/com/projet/projetIndu/security/CustomUserDetailsService.java
index 35e1e524e775e656de41371a8554484cc27c1422..5f8186108fe6c897ba0933f64f10eb6ba3c6ebc9 100644
--- a/src/main/java/com/projet/projetIndu/security/CustomUserDetailsService.java
+++ b/src/main/java/com/projet/projetIndu/security/CustomUserDetailsService.java
@@ -8,6 +8,8 @@ import org.springframework.security.core.userdetails.UserDetailsService;
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
 import org.springframework.stereotype.Service;
 
+import java.util.Optional;
+
 @Service
 public class CustomUserDetailsService implements UserDetailsService {
 
@@ -20,15 +22,24 @@ public class CustomUserDetailsService implements UserDetailsService {
     @Override
     @Transactional
     public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
-        User user = userRepository.findByEmail(email)
-                .orElseThrow(() -> new UsernameNotFoundException("Utilisateur non trouvé avec l'email : " + email));
+        System.out.println("Tentative de connexion avec l'email : " + email);
+        Optional<User> optionalUser = userRepository.findByEmail(email);
+
+        if (optionalUser.isEmpty()) {
+            System.out.println("Utilisateur non trouvé !");
+            throw new UsernameNotFoundException("Utilisateur non trouvé avec l'email : " + email);
+        }
+
+        User user = optionalUser.get();
+        System.out.println("Utilisateur trouvé : " + user.getEmail() + " | Rôle : " + user.getRole());
 
         return org.springframework.security.core.userdetails.User.builder()
                 .username(user.getEmail()) // L'email sert d'identifiant
                 .password(user.getPassword()) // Mot de passe hashé en BDD
-                .roles(user.getRole().name()) // Récupération du rôle
+                .roles("ROLE_" + user.getRole())
                 .build();
     }
 
+
 }
 
diff --git a/src/main/java/com/projet/projetIndu/security/SecurityConfig.java b/src/main/java/com/projet/projetIndu/security/SecurityConfig.java
index b40bb41a80957938ad3f708ac00cbc747cf0d0a5..a792fe8299610ebe2a9edde860394260983d3c03 100644
--- a/src/main/java/com/projet/projetIndu/security/SecurityConfig.java
+++ b/src/main/java/com/projet/projetIndu/security/SecurityConfig.java
@@ -3,7 +3,10 @@ package com.projet.projetIndu.security;
 import com.projet.projetIndu.repositories.UserRepository;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.userdetails.UserDetailsService;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.security.web.SecurityFilterChain;
@@ -20,17 +23,34 @@ public class SecurityConfig {
 
     @Bean
     public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
-        http
-                .authorizeHttpRequests(auth -> auth
-                .requestMatchers("/admin/**").hasRole("ADMIN") // Accès réservé aux admins
-                .requestMatchers("/doctors/**").hasRole("DOCTOR") // Accès aux médecins
-                .requestMatchers("/patients/**").hasRole("PATIENT") // Accès aux patients
-                .anyRequest().authenticated()
-        )
+        http.authorizeHttpRequests(auth -> auth
+                        .requestMatchers("/", "/login", "/register", "/css/**", "/js/**").permitAll()
+                        .requestMatchers("/admin/**").hasAuthority("ROLE_ADMIN")
+                        .requestMatchers("/doctors/**").hasAuthority("ROLE_DOCTOR")
+                        .requestMatchers("/patients/**").hasAuthority("ROLE_PATIENT")
+                        .anyRequest().authenticated()
+                )
                 .formLogin(form -> form
                         .loginPage("/login")
                         .usernameParameter("email")
-                        .defaultSuccessUrl("/", true)
+                        .passwordParameter("password")
+                        .successHandler((request, response, authentication) -> {
+                            // Gestion des redirections selon les rôles
+                            String role = authentication.getAuthorities().stream()
+                                    .map(GrantedAuthority::getAuthority)
+                                    .findFirst()
+                                    .orElse(""); // Prévient une exception si aucun rôle
+                            if (role.equals("ROLE_ADMIN")) {
+                                response.sendRedirect("/admin/dashboard");
+                            } else if (role.equals("ROLE_DOCTOR")) {
+                                response.sendRedirect("/doctors/dashboard");
+                            } else if (role.equals("ROLE_PATIENT")) {
+                                response.sendRedirect("/patients/dashboard");
+                            } else {
+                                response.sendRedirect("/"); // URL par défaut
+                            }
+                        })
+                        .failureUrl("/login?error=true") // En cas d'échec d'authentification
                         .permitAll()
                 )
                 .logout(logout -> logout
@@ -39,7 +59,6 @@ public class SecurityConfig {
                         .permitAll()
                 );
 
-
         return http.build();
     }
 
@@ -49,4 +68,15 @@ public class SecurityConfig {
     }
 
 
+    @Bean
+    public AuthenticationManager authenticationManager(HttpSecurity http, BCryptPasswordEncoder passwordEncoder, UserDetailsService userDetailsService) throws Exception {
+        AuthenticationManagerBuilder authenticationManagerBuilder = http.getSharedObject(AuthenticationManagerBuilder.class);
+        authenticationManagerBuilder
+                .userDetailsService(userDetailsService)
+                .passwordEncoder(passwordEncoder);
+
+        return authenticationManagerBuilder.build();
+    }
+
+
 }
\ No newline at end of file
diff --git a/src/main/resources/templates/login.html b/src/main/resources/templates/login.html
index f2b5c1f4a3e4095a194fd363c82f7e304a970cff..772aea643864d7ecbd9505583f4aab07cffd9f6b 100644
--- a/src/main/resources/templates/login.html
+++ b/src/main/resources/templates/login.html
@@ -13,8 +13,8 @@
         <h3 class="text-center mb-3">Connexion</h3>
         <form th:action="@{/login}" method="post">
             <div class="mb-3">
-                <label for="username" class="form-label">Nom d'utilisateur</label>
-                <input type="text" class="form-control" id="username" name="username" required>
+                <label for="email" class="form-label">Nom d'utilisateur</label>
+                <input type="text" class="form-control" id="email" name="email" required>
             </div>
             <div class="mb-3">
                 <label for="password" class="form-label">Mot de passe</label>