2011-03-16 83 views
2

我想设置access_control的一切,但不是/login模式(也许还有一些更多的路由)。Symfony2 - 访问控制

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

是否有人在如何建立这样的规则有什么好的例子?

回答

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 } 

+0

+1我今天遇到这个问题,无法弄清楚它为什么只发生在Firefox中,但是这固定了它! – 2011-08-08 20:08:44

+0

我还没有检查,所以我不是100%,但这个问题可能只发生在开发模式。 – 2012-07-24 19:25:10

5

不要忘了添加此防火墙:

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