Symfony2 - 访问控制

时间:2011-03-16 13:00:10

标签: access-control symfony

我想为所有内容设置access_control,但不为模式/login(可能还有更多路线)设置。{/ p>

所以我首先设置了登录路径,角色为IS_AUTHENTICATED_ANONYMOUSLY。 然后我使用角色IS_AUTHENTICATED_FULLY设置所有内容的路径。

问题是登录表单现在生成了两次。我看到两个登录字段,两个提交按钮,依此类推。

如果我删除了access_control规则,我没有,只设置为/blog/.*和角色:IS_AUTHENTICATED_FULLY之类的路径,它工作正常,登录表单应该是这样。

所以我的配置“你需要在这里进行身份验证,除了这里”不起作用。

这是我在登录表单生成两次时尝试做的事情:

access_control:
   - { path: /login, role: IS_AUTHENTICATED_ANONYMOUSLY }
   - { path: /.*, role: IS_AUTHENTICATED_FULLY }

有没有人有关于如何设置这样一条规则的好例子?

2 个答案:

答案 0 :(得分:12)

所以我得到了答案:)所以如果有人应该有这个问题,你还必须匿名访问_wdt和_profiler:)

 access_control:

       - { path: /_wdt/.*, role: IS_AUTHENTICATED_ANONYMOUSLY }
       - { path: /_profiler/.*, role: IS_AUTHENTICATED_ANONYMOUSLY }
       - { path: /login, role: IS_AUTHENTICATED_ANONYMOUSLY }
       - { path: /.*, role: IS_AUTHENTICATED_FULLY }

答案 1 :(得分:5)

不要忘记添加此防火墙:

firewalls:
    dev:
        pattern:  ^/(_(profiler|wdt)|css|images|js)/
        security: false