Qui va là ?

Exercice 1 sur 6 du chapitre 4 · 200 XP · 5 objectifs vérifiés par des tests

Notions abordées : Pare-feuform_loginaccess_control

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 :

  1. Déclarez un utilisateur en mémoire : bruna, rôle ROLE_CUISINIER, mot de passe marmite… haché, jamais en clair. La console vous le calcule : security:hash-password marmite.
  2. Dans le pare-feu main, activez la connexion par formulaire (page app_connexion) et la déconnexion (route app_deconnexion, retour à l'accueil).
  3. Réservez tout ce qui commence par /cuisine au rôle ROLE_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.