Цикл перенаправления FOSBundle

0

Я использую 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 чтобы люди не нуждались в аутентификации, но я подозреваю, что это не работает.

Теги:
fosuserbundle

1 ответ

1
Лучший ответ

С этим утверждением:

 anonymous:    false

это уже не действует:

  - { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }

Поэтому структура не может перенаправляться на логин, который вызывает цикл перенаправления (для правильной работы FOS требуется анонимность)

... Я не знаю, работает ли это, но вы можете попытаться установить

{ path: ^/*, role: ROLE_USER }

как первая или последняя строка аскетического контроля,... нет гарантии, что это сработает, я бы попытался создать результат, который вы ищете

  • 0
    Это сработало, спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню