Tous les Projets
Backend

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).

Spring Security 6
Security
USER / ADMIN
Roles
Thymeleaf
View engine
Bean Validation
Validation
Approche

MVC + JPA rendu serveur avec gardes de rôle @PreAuthorize au niveau méthode et authentification BCrypt

Stack Technique
Java 17Spring Boot 3.2Spring MVCSpring Security 6Spring Data JPAThymeleafBootstrap 5MySQLH2
Mots-clés
Spring MVCSpring SecurityThymeleafSpring Data JPARBACBCryptBootstrap
Analyse Approfondie

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.