Symfony2 - Contrôle d'accès
-
25-10-2019 - |
Question
Je veux tout ensemble access_control
pour, mais pas pour le motif /login
(et peut-être quelques routes).
Je me suis donc le chemin pour vous connecter, avec le IS_AUTHENTICATED_ANONYMOUSLY
rôle.
Puis-je configurer le chemin pour tout, avec le IS_AUTHENTICATED_FULLY
rôle.
Le problème est que la forme de connexion est maintenant généré deux fois. Je vois deux champs de connexion, deux boutons d'envoi, et ainsi de suite.
Si je supprime les règles de access_control je n'ai pas, et le seul ensemble à un chemin comme /blog/.*
et avec le rôle. IS_AUTHENTICATED_FULLY
, il fonctionne très bien, le formulaire de connexion est comme il devrait être
Alors ma configuration de " vous devez être authentifié partout sauf ici " ne fonctionne pas.
est ce que j'ai essayé de le faire lorsque le formulaire de connexion est généré deux fois:
access_control:
- { path: /login, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: /.*, role: IS_AUTHENTICATED_FULLY }
Quelqu'un at-il de bons exemples sur la façon de mettre en place une telle règle?
La solution
J'ai la réponse :) Donc, si quelqu'un doit avoir ce problème, il faut aussi laisser _wdt et _profiler être accessibles de manière anonyme:)
access_control: - { path: /_wdt/.*, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: /_profiler/.*, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: /login, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: /.*, role: IS_AUTHENTICATED_FULLY }
Autres conseils
Ne pas oublier d'ajouter ce pare-feu:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false