FOSBundle重定向循环

时间:2015-02-06 15:58:49

标签: php symfony fosuserbundle

我将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路由的条目,这样人们就不需要进行身份验证,但我怀疑它并非如此。工作。

1 个答案:

答案 0 :(得分:1)

这句话:

 anonymous:    false

这不再有效:

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

因此框架无法重定向到导致重定向循环的登录(FOS需要匿名才能正常工作)

...我不会知道它是否有效,但你可以尝试设置

{ path: ^/*, role: ROLE_USER }

作为资产控制的第一行或最后一行,...不保证它有效,我会尝试为了创建您正在寻找的结果