Vous devez configurer le chemin de vérification à gérer par le pare-feu en utilisant form_login dans la configuration de votre pare-feu de sécurité
j'ai un webservice qui est fournisseur pour mon "régulière" par les utilisateurs. Je veux utiliser FosUserBundle pour mon administrateurs. Ci-dessus est ma configuration de sécurité. les utilisateurs réguliers de connexion fonctionne sans problème, mais lorsque je veux connecter en tant qu'admin j'ai eu ce message:
"Vous devez configurer la vérification du chemin pour être traitées par le pare-feu à l'aide de form_login dans votre pare-feu de sécurité de la configuration. "
Voici ma configuration de sécurité:
security:
encoders:
Locastic\CustomUserBundle\Security\User\User: plaintext
FOS\UserBundle\Model\UserInterface: sha512
providers:
fos_userbundle:
id: fos_user.user_provider.username_email
webservice:
id: locastic.user_provider
firewalls:
main:
pattern: ^/admin
form_login:
provider: fos_userbundle
login_path: fos_user_security_login
check_path: fos_user_security_check
csrf_provider: form.csrf_provider
logout: true
anonymous: true
remember_me:
key: "%secret%"
lifetime: 31536000 # 365 days in seconds
path: /
domain: ~ # Defaults to the current domain from $_SERVER
user-service:
pattern: ^/
logout:
path: /logout
anonymous: true
webservice-login:
check_path: /prijava-provjera
login_path: /prijavi-se
provider: webservice
always_use_default_target_path: true
default_target_path: /stanje-racuna
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin, role: ROLE_ADMIN }
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
source d'informationauteur Antonio Peric
Vous devez vous connecter pour publier un commentaire.
Je pense que vous devez mettre
form_login
en vertu d'un pare-feu (main
ou ajoutez-en un autre )form_login en vertu principale du pare-feu :
form_login sous un autre pare-feu
pattern: ^/admin
C'est peut-être là où vos problèmes commencent.
Essayez de changer ce retour à ^/
Puis changer d'itinéraires pour FosUserBundle
Dans certains cas, je peux voir que cela est causé par les paramètres de sécurité par défaut généré lors de symfony est installé par le compositeur.
Dans mon cas, dans ma sécurité.yml, j'ai eu cette section:
Que c'était comme un fourre-tout, il a été interférant avec FOSUserBundle capacité de faire face à la route. Il suffit de supprimer ou, si vous avez un itinéraire que vous avez indiqué vous-même, assurez-vous qu'il n'est pas aussi de la manipulation de la même chemin d'accès d'URL.
Votre code est faux que dans le cadre de check_path valeur.
C'est votre code d'origine:
Et vous devriez utiliser quelque chose comme:
Note que check_path a de la valeur seulement une chaîne de caractères. Si vous utilisez la valeur fos_user_security_check vous appelez à SecurityController.php de la classe et de l'invocation de la checkAction() méthode qui ne lance une RuntimeError Exception avec le message d'erreur s'affiche "Vous devez configurer la vérification du chemin pour être traitées par le pare-feu à l'aide de form_login dans votre pare-feu de sécurité de la configuration.". Donc la solution est tellement simple que de ne pas utiliser la valeur fos_user_security_check