Ajouter une exception de sécurité

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Je suis aujourd'hui confronté à un problème simple mais qui, du fait que je sois un peu maniaque, devient assez énervant à résoudre.

Dans mon fichier de sécurité, j'ai défini un firewall sur l'ensemble de l'application qui autorise les connexion en anonyme. Cela me permet de savoir si un utilisateur est connecté et si c'est le cas d'afficher des infos sur son profil dans le header.

Ensuite, j'ai défini un contrôle d'accès sur toutes les urls commençant par /user pour demander que le ROLE_USER soit rempli. Ça me permet de restreindre l'espace membre aux utilisateurs connectés.

Question 1 : est-ce que cette démarche est correcte ?

Maintenant je travaille sur une page d'affichage du profil, qui peut être consulté par les personnes en ligne et hors ligne. Etant donné que cette page concerne les utilisateurs, son adresse d'accès est du type : /user/profile/num-prenom.nom

Question 2 : Comment faire pour ajouter une exception en utilisant IS_AUTHENTICATED_ANONYMOUSLY sur les pages de type /user/profile/num-prenom.nom ?

J'ai tout essayé niveau expressions régulières, ça me redirige systématiquement sur le formulaire de connexion (donc c'est le ROLE_USER qui l'emporte).

Merci ! ;)

NB : notez que security: false pourrait marcher en créant un nouveau firewall mais je ne pourrai plus, dans le cas ou l'utilisateur est connecté, personnaliser mon header…

+0 -0

Le problème n'est pas lié au header mais à l'affichage du contenu de la page. Si j'essaye d'y accéder en étant déconnecté, il m'affiche que je n'ai pas le bon role pour accéder au contenu ou me redirige sur la page de connexion (il ne prend pas en compte l'exception rajoutée dans l'access control).

Non, car ça ne changerait rien (le problème est lié à la présence de variables dans la route à exclure). Il faudrait que je puisses avoir une expression régulière du type /user/profile/(.*) mais ça ne marche pas, ou je ne connais/trouve pas la syntaxe.

+0 -0

Bonjour !

Merci effectivement après une semaine de tests, je me rend compte que l'ordre compte dans la sécurité :

1
2
    - { path: ^/user/profile/*, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/user, roles: ROLE_USER }

fonctionne

1
2
    - { path: ^/user, roles: ROLE_USER }
    - { path: ^/user/profile/*, roles: IS_AUTHENTICATED_ANONYMOUSLY }

ne fonctionne pas. Merci !

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte