Symfony + fosuserbundle + проблема безопасности с брандмауэрами

У меня возникли проблемы с Symfony security + fos user bundle. Я не смог найти никого, кто бы повторил мою проблему, только похожие проблемы, но решения не работают. Все страницы, включая / должны быть защищены, кроме регистрации / сброса / URL-адреса входа.

Когда я захожу в / вход в систему, URL-адрес "защищен", если я не добавлю его в свой брандмауэр регистрации. это работает до тех пор, пока я не попытаюсь войти в систему, а затем он говорит, что мне нужно добавить путь для входа в главный брандмауэр

firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    registration:
        pattern: ^/(login|register|resetting)
        security: false

    main:
        pattern: ^/
        http_basic: ~
        form_login:
            provider:       fos_userbundle
            csrf_provider:  security.csrf.token_manager
        logout:             true
        anonymous:          true

access_control:
    - { path: ^/(_(profiler|wdt)|css|images|js), role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, role: ROLE_USER }

1 ответ

Решение

Исправлено путем ограничения шаблона ^login до ^login$, чтобы login_check по-прежнему передавался на главный брандмауэр.

firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    login:
        pattern: ^/login$
        security: false

    registration:
        pattern: ^/(register|resetting)
        security: false

    main:
        pattern: ^/
        http_basic: ~
        form_login:
            provider:       fos_userbundle
            csrf_provider:  security.csrf.token_manager
        logout:             true
        anonymous:          true

access_control:
    - { path: ^/(_(profiler|wdt)|css|images|js), role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, role: ROLE_USER }
Другие вопросы по тегам