11
votes

Check_Path non trouvé avec plusieurs pare-feu dans Symfony 2

J'essaie de configurer un système de pare-feu Backend and frontend dans Symfony 2. J'ai deux formulaires de connexion, un pour le frontend et un autre pour le panneau de commande d'administrateur. Différents fournisseurs et ainsi de suite. Ma configuration ressemble à ceci: xxx

et ma routage.yml: xxx

semble juste, mais j'ai l'erreur suivante: Impossible de trouver le contrôleur pour le chemin "/ admin / login_check". Peut-être que vous avez oublié d'ajouter l'itinéraire correspondant dans votre configuration de routage

des idées? :)


7 commentaires

Je suppose que votre motif devrait être motif: ^ / admin. *


Cet itinéraire apparaît-il dans App / Console Router: Débogou ?


Si vous utilisez ce modèle pour votre pare-feu arrière: motif: / admin /.*< / code>


Non, le modèle ne semble pas être le problème.


J'ai eu un problème similaire lorsque j'essayais d'utiliser des pare-feu avec un motif de l'URL qui se chevauchant et que le premier pare-feu n'a pas eu de check_path (j'utilisais http_basic dans le premier pare-feu) et deuxièmement, en utilisant form_login. Votre cartographie de l'URL semble avoir raison, veuillez vérifier si vous avez correct check_path (/ admin / login_check) dans votre contrôleur d'administrateur.


Vous avez un problème résolu?


Pas vraiment. Toujours pas capable d'utiliser une forme de connexion appropriée


3 Réponses :


2
votes

Cette solution que j'utilise dans mes projets. J'espère que cela fonctionnera avec deux formulaires de connexion aussi.

Ajouter un talon pour le contrôleur P>

// src/Acme/DemoBundle/Controller/DefaultController.php
public function adminLoginCheckAction()
{
    return $this->redirect($this->generateUrl('admin_login'));
}


3 commentaires

Le problème est ... l'action est réellement atteinte.


@vinnylinux Pourriez-vous mettre à jour votre question avec instruction étape par étape Comment reproduire le bogue.


Utilisez simplement l'ACMEDEMOBUNDLE et ajoutez le deuxième pare-feu.



2
votes

Votre mappage d'URL semble avoir raison,

Vérifiez si vous avez correct check_path (/ admin / login_check) code> dans votre contrôleur d'administrateur. p>

ou p >

Essayez d'ajouter login_check sous Access_Control comme ci-dessous, P>

- { path: ^/admin/login_check, roles: IS_AUTHENTICATED_ANONYMOUSLY }


0 commentaires

2
votes

Peut ne pas être mauvais simplement pour supprimer le "/" de sorte que vous n'avez que: xxx

et laissez le motif attribuer la manière dont il est. C'est en fait comment mon sécurité.yml semble et expliquerait le problème de la route.


0 commentaires