2

Symfony2 中的防火墙有问题。

我的 security.yml 文件中有这些

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

在我的菜单构建器中,我使用 isGranted 并且效果很好,如果我使用我的 ROLE_USER 用户登录,则菜单不会构建管理菜单。

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

在开发环境的工具栏中,我可以看到用户没有 ROLE_ADMIN 角色

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

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

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

我正在使用 FOSUserbundle

4

1 回答 1

4

中的条目access_control 应该按照从更具体到更一般的顺序。因此,就您而言,它们应按以下顺序排列:

- { path: ^/admin, roles: ROLE_ADMIN }
- { path: ^/, roles: ROLE_USER }
于 2013-04-06T10:35:25.430 回答