Scandale à la taverne : un client a découvert la page /cuisine/nouveau-plat et ajouté à la carte un « Ragoût de Pipin, gratuit ». La cuisine doit être fermée au public : seule Bruna y entre.
Le composant Security de Symfony s'organise autour d'un pare-feu (qui êtes-vous ?) et de règles d'accès (avez-vous le droit ?).
Votre mission
Dans config/packages/security.yaml :
- Déclarez un utilisateur en mémoire :
bruna, rôleROLE_CUISINIER, mot de passemarmite… haché, jamais en clair. La console vous le calcule :security:hash-password marmite. - Dans le pare-feu
main, activez la connexion par formulaire (pageapp_connexion) et la déconnexion (routeapp_deconnexion, retour à l'accueil). - Réservez tout ce qui commence par
/cuisineau rôleROLE_CUISINIER.
Dans SecuriteController::connexion(), transmettez au template le dernier identifiant saisi et la dernière erreur de connexion (service AuthenticationUtils). La page de connexion et la navigation (Connexion / Déconnexion) sont prêtes.
Rappel
Vous n'écrivez pas le code qui vérifie le mot de passe : le pare-feu intercepte le formulaire envoyé à check_path, compare le mot de passe haché, ouvre la session, puis vous renvoie là où vous alliez.