Symfony2 is_granted ('IS_AUTHENTICATED_FULLY') während der Anzeige der 404-Fehlerseite, was ResourceNotFoundException verursacht
Habe ich benutzerdefinierte setup-Fehler-Seiten angezeigt werden, bestimmte HTTP-Fehler in den Ordner:
app/Resources/TwigBundle/views/Exception/
Der 403-Seite (error403.html.twig
) funktioniert und zeigt, wie erwartet.
500 Seite (error500.html.twig
) funktioniert und zeigt, wie erwartet.
Die 404-Seite (error404.html.twig
) wirft einen 500-server-Fehler:
PHP Fatal error: Uncaught exception 'Symfony\Component\Routing\Exception\ResourceNotFoundException'
Der Fehler wird geworfen, indem Sie eine auth überprüfen Sie die Anzeige bestimmter Menü-Einträge für Nutzer, die nicht authentifiziert sind:
{% if is_granted('IS_AUTHENTICATED_FULLY') %}
Wenn ich Sie entfernen, überprüfen und zulassen, dass alle Menüpunkte angezeigt, die Seite lädt die Fehler-Seite wie erwartet. Wieder die 403 Seite angezeigt wird wie es soll und verwendet den auth-Prüfungen ohne ein problem.
Ich bin stecken geblieben auf diese ein. Die Seiten sind GENAU die gleichen, abgesehen von den Dateinamen.
InformationsquelleAutor der Frage Nick | 2012-08-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht verwenden, die
is_granted
eine 404-Seite, da 2.1:Erwähnt in der upgrade-Datei
Finden Sie unter:
https://github.com/symfony/symfony/blob/master/UPGRADE-2.1.md#security
InformationsquelleAutor der Antwort Jeroen
Wenn symfony < 2.8 :
Finden Sie unter : https://github.com/symfony/symfony-docs/issues/2078
Bearbeiten von Dec 17 '15:
Ist dies nicht mehr notwendig, da 2.8,
funktioniert jetzt.
Quelle: http://symfony.com/blog/new-in-symfony-2-8-dx-improvements#allow-to-check-for-security-even-in-pages-not-covered-by-firewalls
InformationsquelleAutor der Antwort Tseho
Ich würde vorschlagen, die überprüfung für
app.security.token
zu mehr strenge und auszuwerten, umtrue
auch wenn der Benutzer anonym ist.Wenn Sie das Kontrollkästchen für
app.user
zu evaluierenfalse
im Ausnahme-Vorlagen, aber auch wenn die firewall ist vorhanden (= regelmäßige Vorlagen), aber der Benutzer nicht angemeldet ist. Dies verhindert, dass - zum Beispiel - die Anzeige eines login-button.Finden Sie unter: https://github.com/symfony/symfony-docs/pull/2359
InformationsquelleAutor der Antwort bozma88