Symfony2 is_granted('IS_AUTHENTICATED_FULLY') au cours de l'erreur 404 la page d'affichage, ce qui provoque ResourceNotFoundException
J'ai la configuration des pages d'erreur personnalisées à afficher pour certains HTTP erreurs dans le dossier:
app/Resources/TwigBundle/views/Exception/
La page 403 (error403.html.twig
) fonctionne et affiche comme prévu.
Les 500 pages (error500.html.twig
) fonctionne et affiche comme prévu.
La page 404 (error404.html.twig
) jette un 500 erreur de serveur:
PHP Fatal error: Uncaught exception 'Symfony\Component\Routing\Exception\ResourceNotFoundException'
L'erreur est d'être jeté en faisant un auth cochez cette case pour afficher certains éléments de menu pour les utilisateurs qui sont ou ne sont pas authentifiés:
{% if is_granted('IS_AUTHENTICATED_FULLY') %}
Si je supprime que l'enregistrement et juste permettre à tous les éléments de menu à l'écran, le chargement de la page la page d'erreur comme prévu. Encore une fois, la 403 page affiche comme il se doit et utilise l'authentification vérifie sans problème.
Je suis bloqué sur celui-ci. Les pages sont EXACTEMENT les mêmes, à part de nom de fichier.
- La version de Symfony utilisez-vous?
- La dernière et la plus grande. 2.1-dev je crois
- Je pense qu'il serait mieux (en raison de l'-dev version) pour créer une question sur github, symfony gars sont vraiment utile 🙂
- Ajouté à GitHub: github.com/symfony/symfony/issues/5225
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas utiliser la
is_granted
dans une page 404 depuis 2.1:Il est mentionné dans le fichier de mise à jour
Voir:
https://github.com/symfony/symfony/blob/master/UPGRADE-2.1.md#security
Si symfony < 2.8 :
Voir : https://github.com/symfony/symfony-docs/issues/2078
Modifier à partir de Déc 17 '15:
Ce n'est plus nécessaire depuis la 2.8,
fonctionne très bien maintenant.
source: http://symfony.com/blog/new-in-symfony-2-8-dx-improvements#allow-to-check-for-security-even-in-pages-not-covered-by-firewalls
Je suggère de vérifier
app.security.token
à être plus stricte et d'évaluer àtrue
même lorsque l'utilisateur est anonyme.Si vous cochez la case pour
app.user
elle permettra d'évaluerfalse
à l'Exception des templates, mais même lorsque le pare-feu est présent (= régulier des modèles), mais l'utilisateur n'est pas connecté. Cela permettra d'éviter que, par exemple, l'affichage d'un bouton de connexion.Voir: https://github.com/symfony/symfony-docs/pull/2359