I see in the sample config for the Symfony firewall (https://symfony.com/doc/current/security.html) that routes should be specified thusly
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
- { path: ^/profile, roles: ROLE_USER }
But I have been doing it for quite a while without the ^ character. What does it do?
So this config seems to achieve the same thing:
access_control:
- { path: /admin, roles: ROLE_ADMIN }
- { path: /profile, roles: ROLE_USER }
CodePudding user response:
This is the default restriction and restricts a firewall to only be initialized if the request path matches the configured pattern.
"The pattern is a regular expression. In this example, the firewall will only be activated if the path starts (due to the ^ regex character) with /admin. If the path does not match this pattern, the firewall will not be activated and subsequent firewalls will have the opportunity to be matched for this request."
Reference: https://symfony.com/doc/current/security/firewall_restriction.html
CodePudding user response:
based on the documantation:
Prepending the path with ^ means that only URLs beginning with the pattern are matched. For example, a path of /admin (without the ^) would match /admin/foo but would also match URLs like /foo/admin.