Я пытаюсь настроить безопасность для папки в src / in Symfony. Но я хочу иметь другой набор правил безопасности для основной папки «Общие» и «Intr anet» без префикса маршрутов ... Так что мне нужно только префикс «Extr anet»
Возможно ли это? Я знаю, что с префиксом в routing.yml это очень легко сделать, но это не вариант, поскольку видимые URL-адреса внезапно изменятся
Проблема возникает, когда мы должны разрешить внешним пользователям нашу платформу. В течение многих лет он был доступен только для сотрудников компаний, но теперь внешние люди должны иметь доступ к определенным страницам. И некоторые общие маршруты (ajax звонки и c) должны быть доступны для всех
- src /
- Интранет / => Открытые маршруты для внутренних пользователей
- Общие / => Открытые маршруты для всех пользователей
- Extranet / => Открытые маршруты для внешних пользователей
Тогда маршруты Extr anet получают дополнительный префикс / extranet /. Но я хотел бы иметь другие 2 (General и Intr anet) без префикса
# routing.yml
extranet:
resource: "@ExtranetBundle/Controller/"
prefix: /extranet/
Затем с контролем доступа я позабочусь о маршрутах / extr anet
access_control:
# Login and the base_route "/" is always available
- { path: ^/$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
# External users + Super admins + server IP's can only access urls starting with /extranet/
-
path: ^/extranet/*
roles: [ROLE_EXTERNAL_USER, ROLE_SUPER_ADMIN]
ips: !php/const:SomeBundle\SomeClass\ConstantProvider::ALLOWED_SERVER_IPS
# Some routes need to be available for both internal and external users
# but hopefully without having to prefix them
...
# All other routes are only for internal users and the right ip addresses
-
path: ^/*
role: ROLE_INTERNAL_USER
ips: !php/const:SomeBundle\SomeClass\ConstantProvider::ALLOWED_SERVER_IPS
Или, может быть, идея по-другому подойти к этой проблеме?