Gestion d'Hôpital — Spring MVC + Security
Une application web complète de gestion de patients : Spring MVC + Spring Data JPA + Thymeleaf avec recherche paginée, validation de formulaires, et Spring Security 6 (login formulaire, remember-me, autorisation par rôles USER vs ADMIN).
MVC + JPA rendu serveur avec gardes de rôle @PreAuthorize au niveau méthode et authentification BCrypt
Une application web entièrement rendue côté serveur pour gérer les patients d'un hôpital, sécurisée de bout en bout avec Spring Security 6.
Fonctionnalités
- ▸📋 Liste paginée + recherche par nom
- ▸➕ Ajout de patient avec validation (
@NotEmpty,@Size,@DecimalMin) - ▸✏️ Édition / 🗑️ suppression — réservées aux admins
- ▸🔐 Login formulaire, remember-me, page « non autorisé » personnalisée
- ▸👥 Routes par rôle :
/user/**→ USER,/admin/**→ ADMIN
Architecture
security/ → SecurityConfig (filter chain), SecurityController
web/ → PatientController (CRUD, pagination, @PreAuthorize)
repository/ → PatientRepository (JpaRepository)
entities/ → Patient (JPA + Bean Validation)
templates/ → vues Thymeleaf avec layout commun (Bootstrap 5)
Modèle d'authentification
Utilisateurs en mémoire avec hachage BCrypt : user1/user2 (USER) et admin (USER + ADMIN). Les @PreAuthorize au niveau méthode protègent les mutations tandis que les vues en lecture restent ouvertes aux utilisateurs authentifiés. Tourne sur :8084 avec un schéma MySQL hopital (auto-créé), H2 pour les tests.