这里是不是使用ControllerListener.php进行监听/
1、我想知道同过一个controller对其中几个bundle进行访问权限的限制,比如:判断用户如果未登录,直接跳转到首页或者登陆页面。
2、针对一个bundle访问权限如何设置。是基于用户的
这里是不是使用ControllerListener.php进行监听/
1、我想知道同过一个controller对其中几个bundle进行访问权限的限制,比如:判断用户如果未登录,直接跳转到首页或者登陆页面。
2、针对一个bundle访问权限如何设置。是基于用户的
太灵活,太多办法了,暂写个一个方面吧:
有第三方的做好的用户功能包: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,可以提供更加细粒度的控制。不过那是另外一个大篇章了。