Я использую SF2 вместе с пакетом FOS.
security:
providers:
fos_userbundle:
id: fos_user.user_provider.username
encoders:
FOS\UserBundle\Model\UserInterface: sha512
firewalls:
dev:
pattern: ^/(_(profiler|wdt|error)|css|images|js)/
security: false
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout: true
anonymous: false
access_control:
- { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
Если я установлю свой main: anonymous: false
на true
, я больше не получаю цикл переадресации, но тогда люди не должны войти в систему, чтобы получить доступ ко всему (что они должны быть!)
Я думаю, что access_control
имеет запись для маршрута ^/login
чтобы люди не нуждались в аутентификации, но я подозреваю, что это не работает.
С этим утверждением:
anonymous: false
это уже не действует:
- { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
Поэтому структура не может перенаправляться на логин, который вызывает цикл перенаправления (для правильной работы FOS требуется анонимность)
... Я не знаю, работает ли это, но вы можете попытаться установить
{ path: ^/*, role: ROLE_USER }
как первая или последняя строка аскетического контроля,... нет гарантии, что это сработает, я бы попытался создать результат, который вы ищете