Управление маршрутом в security.yml с помощью access_control - PullRequest
0 голосов
/ 05 июня 2019

Я хочу:

/ p / {name} ==> в публичном доступе
/ profile ==> при входе в систему

Я сделал это в security.yml

access_control:
    - { path: ^/[p]/* , role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/*, role: ROLE_CONNECT }

Но, когда я просматриваю:

/ profile => общедоступный ==> KO
/ p / name-here => общедоступный ==> OK

1 Ответ

2 голосов
/ 05 июня 2019

Я почти уверен, что ^/[p]/* будет соответствовать любому пути, начинающемуся с /p, и вы используете его в качестве первого правила, поэтому он совпадает первым и разрешает доступ.

Квадратные скобки [] определяют набор символов для сопоставления, вы хотите сопоставлять только один, поэтому вам они не нужны.* говорит, что соответствует нулю или более / символов в конце, вы знаете, что будет один / после p, поэтому опустите звездочку.Путь является префиксом, поэтому вам не нужно беспокоиться о переменной части пути.

Попробуйте это:

- { path: ^/p/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/profile, role: ROLE_CONNECT }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...