2

每当我尝试删除anonymous: ~security.yml 中的配置时,系统最终都会返回错误 310:重定向循环。

这是目前的配置:

    firewalls:
    secured_area:
        pattern: ^/
        #anonymous: ~
        form_login:
            check_path: /login_check
            login_path: /login
        logout:
            path: /logout
4

1 回答 1

4

试试这个:

firewalls:
    secured_area:
        pattern: ^/
        #anonymous: ~
        form_login:
            check_path: /login_check
            login_path: /login
        logout:
            path: /logout
    login_firewall:
        pattern:    ^/login$
        anonymous:  ~

请参阅文档http://symfony.com/doc/current/book/security.html#book-security-common-pitfalls

确保登录页面不安全

此外,请确保登录页面不需要查看任何角色。例如,以下配置 - 需要所有 URL(包括 /login URL)的 ROLE_ADMIN 角色,将导致重定向循环:

access_control:
    - { path: ^/, roles: ROLE_ADMIN }

删除 /login URL 上的访问控制可以解决问题:

access_control:
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, roles: ROLE_ADMIN }

此外,如果您的防火墙不允许匿名用户,您需要创建一个允许匿名用户登录页面的特殊防火墙:

firewalls:
    login_firewall:
        pattern:    ^/login$
        anonymous:  ~
    secured_area:
        pattern:    ^/
        form_login: ~
于 2012-11-27T04:32:16.403 回答