2

我想access_control为所有东西设置,但不是为模式/login(也许还有更多路线)。

所以我首先设置了登录路径,角色为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 }

有没有人有任何关于如何建立这样一个规则的好例子?

4

2 回答 2

12

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

访问控制:

       - {路径:/_wdt/.*,角色:IS_AUTHENTICATED_ANONYMOUSLY }
       - { 路径:/_profiler/.*,角色:IS_AUTHENTICATED_ANONYMOUSLY }
       - {路径:/登录,角色:IS_AUTHENTICATED_ANONYMOUSLY}
       - {路径:/.*,角色:IS_AUTHENTICATED_FULLY }

于 2011-03-16T13:07:06.253 回答
5

不要忘记添加此防火墙:

firewalls:
    dev:
        pattern:  ^/(_(profiler|wdt)|css|images|js)/
        security: false
于 2012-04-25T12:35:13.290 回答