Symfony2 - controllo accessi
-
25-10-2019 - |
Domanda
Voglio access_control
set per tutto, ma non per il /login
modello (e forse alcuni più rotte).
Così ho creato il percorso per il login, con il ruolo di IS_AUTHENTICATED_ANONYMOUSLY
.
Poi ho impostato il percorso per tutto, con il ruolo di IS_AUTHENTICATED_FULLY
.
Il problema è che form di login è ora generato due volte. Vedo due campi di accesso, due submit pulsanti, e così via.
Se rimuovo le regole access_control io non ho, e solo impostato su un percorso come /blog/.*
e con il ruolo:. IS_AUTHENTICATED_FULLY
, funziona benissimo, il modulo di accesso è come dovrebbe essere
Quindi, la mia configurazione di " è necessario essere autenticato ovunque tranne qui " non funziona.
Questo è quello che ho cercato di fare quando modulo di login viene generato due volte:
access_control:
- { path: /login, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: /.*, role: IS_AUTHENTICATED_FULLY }
Qualcuno ha qualche esempi di buone per come impostare tale regola?
Soluzione
Così ho ottenuto la risposta :) Quindi, se qualcuno dovesse avere questo problema, si hanno anche per lasciare _wdt, e l'essere _profiler accedere in modo anonimo:)
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 }
Altri suggerimenti
Non dimenticare di aggiungere questo firewall:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false