Я почти уверен, что ^/[p]/*
будет соответствовать любому пути, начинающемуся с /p
, и вы используете его в качестве первого правила, поэтому он совпадает первым и разрешает доступ.
Квадратные скобки []
определяют набор символов для сопоставления, вы хотите сопоставлять только один, поэтому вам они не нужны.*
говорит, что соответствует нулю или более /
символов в конце, вы знаете, что будет один /
после p
, поэтому опустите звездочку.Путь является префиксом, поэтому вам не нужно беспокоиться о переменной части пути.
Попробуйте это:
- { path: ^/p/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/profile, role: ROLE_CONNECT }