recherche
Questions et réponses Plusieurs pare-feu améliorent la sécurité dans Symfony 5.4

0
<p>J'essaie de séparer l'authentification de l'utilisateur de celle de l'administrateur. </p> <p>J'ai donc créé 2 pare-feu et 2 contrôles d'accès différents. </p> <p>Mon fichier security.yaml est le suivant :</p> <pre class="brush:php;toolbar:false;">enable_authenticator_manager : true mot de passe_hashers : SymfonyComponentSecurityCoreUserPasswordAuthenticatedUserInterface : 'auto' fournisseurs: authentification_propriétaire : entité: classe : AppEntityMerchantOwner propriété : adressee-mail Authentification d'utilisateur: entité: classe : AppEntityUserUser propriété : adressee-mail pare-feu : développeur : modèle : ^/(_(profiler|wdt)|css|images|js)/ sécurité : faux utilisateur: paresseux : vrai modèle : ^/admin/login/ fournisseur : user_authentication user_checker : AppSecurityAuthentificableModelChecker formulaire_login : fournisseur : user_authentication default_target_path : app.dashboard.index use_referer : vrai use_forward : faux chemin_de_connexion : app.authorization.admin_login check_path : app.authorization.admin_login paramètre_nom_utilisateur : connexion[emailAddress] paramètre_mot de passe : connexion[mot de passe] Se déconnecter: chemin : app.authorization.logout cible : app.authorization.admin_login principal: paresseux : vrai modèle : ^/ fournisseur : owner_authentication user_checker : AppSecurityAuthentificableModelChecker formulaire_login : fournisseur : owner_authentication default_target_path : app.dashboard.index use_referer : vrai use_forward : faux chemin_de_connexion : app.authorization.login check_path : app.authorization.login paramètre_nom_utilisateur : connexion[emailAddress] paramètre_mot de passe : connexion[mot de passe] Se déconnecter: chemin : app.authorization.logout cible : app.authorization.login contrôle d'accès: - { chemin : ^/admin/login, rôles : PUBLIC_ACCESS} - { chemin : ^/login, rôles : PUBLIC_ACCESS } - { chemin : ^/, rôles : ROLE_USER }</pre> <p>Tout fonctionne bien sur le pare-feu principal, mais lorsque j'utilise le bouton de soumission du pare-feu utilisateur (administrateur), la page de connexion se rafraîchit et rien ne se passe. Je ne reçois aucune erreur. </p> <p>** Si j'ajoute une connexion utilisateur (administrateur) sur le pare-feu principal, alors /admin/login fonctionne correctement et l'autre ne fonctionne plus. </p> <p>Lorsque j'appelle <code>$authenticationUtils->getLastAuthenticationError()</code>, je ne reçois aucune erreur. Mais la validation ne fonctionne pas non plus.</p> <p>Voici à quoi ressemble mon contrôleur : </p> <pre class="brush:php;toolbar:false;">fonction publique adminLogin(AuthenticationUtils $authenticationUtils) : réponse { si ($this->getUser()) { return $this->redirectToRoute('app.dashboard.index'); } $loginForm = $this->createForm(LoginType::class, ['emailAddress' => $authenticationUtils->getLastUsername()]); return $this->renderForm('app/pages/authorization/admin_login.html.twig', [ 'title' => 'Connexion', 'login_form' => 'erreur' => $authenticationUtils->getLastAuthenticationError()?->getMessageKey(), ]); }</pré> <p>C'est le même problème que quelqu'un a eu : https://grafikart.fr/forum/35234, mais je n'ai trouvé aucune solution. </p>
Your Answer
soumettre

1 réponse
0

Enfin, j'ai trouvé la réponse et je la posterai ici : https://stackoverflow.com/a/42352112/8003007 Tout ce que j'ai à faire est d'en ajouter un context: my_context aux deux pare-feu.

Il s'agit d'une option difficile à identifier car elle n'apparaît pas dans la documentation officielle et actuelle de Symfony, uniquement dans les versions précédentes, telles que Symfony 3.4.

2023-08-27 10:46:01

soumettre

Hot Tools

Collection de bibliothèques d'exécution vc9-vc14 (32 + 64 bits) (lien ci-dessous)

Collection de bibliothèques d'exécution vc9-vc14 (32 + 64 bits) (lien ci-dessous)

Téléchargez la collection de bibliothèques d'exécution requises pour l'installation de phpStudy

VC9 32 bits

VC9 32 bits

Bibliothèque d'exécution de l'environnement d'installation intégré VC9 32 bits phpstudy

Version complète de la boîte à outils du programmeur PHP

Version complète de la boîte à outils du programmeur PHP

Programmer Toolbox v1.0 Environnement intégré PHP

VC11 32 bits

VC11 32 bits

Bibliothèque d'exécution de l'environnement d'installation intégré VC11 phpstudy 32 bits

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser