Symfony2防火墙,ROLE_USER可以访问/ admin

时间:2013-04-06 10:12:34

标签: symfony fosuserbundle

我在Symfony2中遇到防火墙问题。

我在security.yml文件中有这些

- { path: ^/, role: ROLE_USER }
- { path: ^/admin, role: ROLE_ADMIN }
- { path: ^/users, role: ROLE_ADMIN }

在我的菜单构建器中使用isGranted,这非常有效,如果我使用我的ROLE_USER用户登录,则菜单不会构建管理菜单。

但如果我在浏览器中手动输入/ admin,我会收到管理页面。 (这在生产和开发环境中都会发生)

在dev env的工具栏中,我可以看到用户没有ROLE_ADMIN角色

如果我根本不登录,我只看到登录页面,所以这里一切都很好

完整的security.yml:https://gist.github.com/lsv/2e9dce622fd82d31853c

完整的config.yml:https://gist.github.com/lsv/ec87592f911262af5417

我正在使用FOSUserbundle

1 个答案:

答案 0 :(得分:4)

access_control should be in the order from more specific to more general中的条目。因此,在您的情况下,它们应按以下顺序排列:

- { path: ^/admin, roles: ROLE_ADMIN }
- { path: ^/, roles: ROLE_USER }