从访问控制列表中排除公共页面

Ale*_*tau 4 php acl symfony

我在Symfony2中有2个角色的应用程序:ROLE_ADMIN和ROLE_PARTNER.我也有一些公共页面.所有公共页面都以URL"/ public /"开头.我想保护所有申请人不包括这些公共项目.

我当前的配置:

access_control:
    - { path: /.*, role: ROLE_PARTNER|ROLE_ADMIN }
    - { path: /public/.*, role: IS_AUTHENTICATED_ANONYMOUSLY }
Run Code Online (Sandbox Code Playgroud)

但它工作错误(循环重定向).

Eln*_*mov 8

改变顺序:

access_control:
    - { path: ^/public/, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, role: ROLE_PARTNER|ROLE_ADMIN }
Run Code Online (Sandbox Code Playgroud)

第二个选项是完全关闭公共部分的安全性:

firewalls:
    public:
        pattern: ^/public/
        security: false
Run Code Online (Sandbox Code Playgroud)