Symfony2和匿名访问某些路由

Tow*_*wer 11 php symfony

使用此配置:

firewalls:
    login:
        pattern:  ^/login$
        anonymous:  ~
        security: false

    foo:
        pattern:   ^/foo$
        anonymous: ~
        security: false

    secured_area:
        pattern:    ^/
        form_login:
            login_path: /login
            check_path: /login_check
        logout:
            path:   /logout
            target: /

access_control:
    - { path: ^/, roles: ROLE_ADMIN }
    - { path: ^/foo, roles: IS_AUTHENTICATED_ANONYMOUSLY }
Run Code Online (Sandbox Code Playgroud)

我希望能够/foo匿名访问.但是,当我尝试去清除缓存后,它将不允许我重定向到登录屏幕.

如何保持一条路线匿名访问,同时保留系统的其余部分以进行保护?

Mol*_*Man 15

更换

- { path: ^/foo, roles: IS_ANONYMOUS }
Run Code Online (Sandbox Code Playgroud)

- { path: ^/foo, roles: IS_AUTHENTICATED_ANONYMOUSLY }
Run Code Online (Sandbox Code Playgroud)

UPDATE

另外,我相信,你必须补充

- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
Run Code Online (Sandbox Code Playgroud)

用于身份验证以正常工作

有关更多信息,请查看此处的" 避免常见陷阱"部分.