2

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を使用しています

4

1 に答える 1

4

のエントリはaccess_control 、より具体的なものからより一般的なものの順に並べる必要があります。したがって、あなたの場合、それらは次の順序である必要があります。

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