Verwenden Sie ControllerListener.php zur Überwachung/
1. Ich möchte wissen, wie ich die Zugriffsrechte mehrerer Bundles über denselben Controller einschränken kann. Wenn der Benutzer beispielsweise nicht angemeldet ist, springen Sie direkt zur Startseite oder Anmeldeseite.
2. So legen Sie Zugriffsberechtigungen für ein Bundle fest. Es ist benutzerbasiert
太灵活,太多办法了,暂写个一个方面吧:
有第三方的做好的用户功能包:FOSUserBundle
自己写的话,在用登录表单之前,你需要告诉框架用户信息是怎么保存的,如果你用Doctrine和数据库的话,你得写一个User的Entity,实现Symfony\Component\Security\Core\User\UserInterface接口。
(一)创建用户类
(二)使用这个用户类
(三)添加权限控制
安全校验可以在URL层面来控制,你让你的bundle共享某个URL规则,就可以用一条规则进行控制:
也可以用Symfony 2自带的JMSSecurityExtraBundle,可以用注解来配置:
Symfony 2的安全组件配置项很多,可以参考:http://symfony.com/doc/current/refere...
表单验证(form_login),也就是最常见的登录框形式,是Symfony 2安全组件默认支持的验证方式之一,其他的还有X.509,HTTP Basic,HTTP Digest等等,还可以通过第三方代码包增加别的验证方式。表单验证的配置项如下,我注释了常用的一些项:
还有内置的ACL,可以提供更加细粒度的控制。不过那是另外一个大篇章了。
十分感谢你的回答,内置的ACL确实十分强大,谢谢你