Bonjour,

Je souhaite autoriser l'accès à certaines pages de mon application en fonction du role de l'utilisateur connecté et de son adresse IP.

[Symfony 6.2]

Voici l'extrait du fichier config/packages/security.yaml :

security:
    access_control:
        - { path: ^/admin, roles: ROLE_ADMIN, ips: [12.34.56.78] }

Au début je n'avais pas la règle 'ips' et la page était accessible uniquement par les utilisateurs ayant le rôle ROLE_ADMIN.

Depuis que j'ai rajouté cette règle 'ips' n'importe quel utilisateurs y a accès... étrange mais il y a très certainement quelque chose que je n'ai pas compris.

Peu importe comment j'écris cette règle cela donne ce même résultat.

Si quelqu'un à une solution elle sera la bienvenue.

Merci d'avance !

1 réponse


AdBouli
Auteur
Réponse acceptée

Corrigé :

J'ai oublié que si aucune règle de access_control ne match avec la route, par défaut elle autorise la requète.
Il faut donc ajouter une règle pour refuser la requète :

security:
    access_control:
        - { path: ^/admin, roles: ROLE_ADMIN, ips: [12.34.56.78] }
        - { path: ^/admin, roles: ROLE_NO_ACCESS }

Voilà voilà ...