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

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

Когда я перехожу к /login, 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 }

person tmas    schedule 17.09.2015    source источник


Ответы (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 }
person tmas    schedule 17.09.2015