Symfony + fosuserbundle +防火墙的安全问题

时间:2015-09-17 13:43:17

标签: symfony fosuserbundle symfony-security

我遇到了symfony security + fos用户包的问题。 我找不到任何人复制我的问题,只有类似的问题,但解决方案不起作用。 除注册/重置/登录网址外,所有页面都必须加以保护。

当我去/登录时,网址是“受保护的”,除非我将其添加到我的注册防火墙。这有效,直到我尝试登录,然后它说我需要将登录路径添加到主防火墙。

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 个答案:

答案 0 :(得分:0)

通过将^ 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 }
相关问题