TD n°5
Sécurisation
Initialisation
- Créer la branche td5 à partir de votre branche td4 (master & dogs)
- Intégrer les dépendances Spring Security
- Utiliser dans un premier temps la connexion provisoire avec l'utilisateur user, dont le mot de passe s'affiche dans la console Spring
Entités
Créer les entities User et Role :
Créer les repositories :
- UserRepository:JpaRepository (permettant en + de rechercher un user par son username ou son email)
- RoleRepository:CrudRepository
Sécurisation
Définir les rôles suivants :
- USER
- MANAGER_DOG (+ USER)
- MANGER_MASTER (+ USER)
- ADMIN (+ MANAGER_DOG + MANAGER_MASTER)
La hiérarchie des droits n'étant pas fonctionnelle dans la version Spring security 6.0 utilisée,
il faut manuellement accorder les droits MANAGER_DOG, MANAGER_MASTER et USER à l'ADMIN
Mettre en place les éléments de sécurisation suivants :
- La page d'accueil (/), la page /login, l'api rest sont accessibles sans authentification.
- La console H2 doit être accessible
- MANAGER_DOG peut accéder aux opérations de modification des chiens (Ajout/suppression/modification)
- MANAGER_MASTER peut accéder aux opérations de modification des masters (Ajout/suppression/modification)
- ADMIN a le droit d'accéder aux URLs de gestion des Users et Roles en /admin
Connexion depuis la BDD
- Mettre en place une authentification basique par login ou email/password depuis la base de données.
- Hasher le mot de passe avec BCrypt.
Formulaire de login
Personnaliser le formulaire de login :
et la page de déconnexion (affichant un message) :
Afficher le message suivant en cas d'accès non autorisé :