保护Symfony2应用程序

时间:2013-03-11 22:49:40

标签: security symfony

我正在开发一个Symfony2应用程序,该应用程序涉及具有分层角色的用户。现在我可以注册,恢复和登录到应用程序而不会出现问题,因为我已经实现了Symfony2文档中描述的角色和用户。

此时,我已经开发了一些CRUD,以便能够管理应用程序中的对象,但在当前实现中,我必须检查当前用户角色,以便让他或不运行“选定”操作。我的意思是,在每个控制器中我得到安全上下文,然后用户对象和检查权限然后有时我需要检查当前用户是数据的所有者 - 即如果用户有客户端我需要检查url传递变量/ id /无论拥有/属于当前用户 - 然后拒绝访问或不访问。

所以,到目前为止我习惯并且感觉很舒服,如上所述开发应用程序,我想知道是否有更好的方法或Symfony2方法,我可以用标准或更理解的方式管理角色和数据,以便将来开发人员不需要遍历每个if或检查内部控制器+操作。我还想说明我可以自定义如何获取或加载数据或对象,这样我就可以优化sql在后台运行。

1 个答案:

答案 0 :(得分:0)

Symfony ACL正是您所需要的。您可以将访问权限(即OWNER,EDIT,VIEW等)分配给单个用户,也可以分配给具有特定角色(或两者)的所有用户。

如果ACL太复杂而无法满足您的需求,那么替代方法就是使用自定义Security Voter