Quando eseguo l'autenticazione del solito modo (utilizzando il modulo di accesso), funziona perfettamente. Sto ottenendo questo errore solo quando /check_form
si accede tramite metodo GET direttamente, nel qual caso viene generata un'eccezione:Come eliminare l'errore "È necessario configurare il percorso di controllo da gestire dal firewall" con le richieste GET?
È necessario configurare il percorso di controllo per essere gestita dal firewall utilizzando form_login nella configurazione del firewall di sicurezza.
Ecco il relativo security.yml
parte:
firewalls:
acme_area:
pattern: ^/(acme|admin)/
provider: fos_userbundle
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
login_path: acme_login
check_path: /acme/login_check
logout:
path: /acme/logout
target: acme_login
anonymous: true
sto usando 2.3, quindi nessuna opzione methods
è applicabile (anche se non ho idea se sarebbe d'aiuto).
non è davvero un problema in quanto non corretto utilizzo potrebbe essere rovinato da questo errore, ma inquina il log degli errori quando alcuni bot diligente sta visitando il sito ed è solo in disordine. Quindi, vorrei sapere quale opzione di configurazione posso modificare per eliminare questo errore.
Per bollire questo, sembra che io voglia gettare qualche errore 4xx invece di 500. Idealmente dovrebbe essere 405 Method Not Allowed
, ma anche il freddo 404
.
EDIT:
Per come ho imparato dalla risposta di Alex in basso, questo accade perché le richieste POST vengono gestite dal firewall e ottenere le richieste del controllore. Quindi, sembra che il default checkAction()
devono essere estese per essere in grado di gestire due casi:
- Quando la richiesta è POST, ma nessuna voce firewal è presente (già nandled)
- Quando la voce firewall è presente, ma alla richiesta non è GET (il mio caso)
Probabilmente avete già visto e digerito le informazioni qui? http://stackoverflow.com/questions/17406446/how-does-the-login-check-path-route-work-without-default-controller-action – RamRaider