禁止用户使用fosuserBundle访问Symfony2中的其他帐户

时间:2016-02-18 00:13:31

标签: symfony fosuserbundle

我想知道如何自定义防火墙,以便用户无法使用fosUser Bundle访问除他们之外的任何个人资料

1 个答案:

答案 0 :(得分:1)

我认为你在这里混淆了一些问题。 FOSUserBundle 可让您管理用户和常见的用户管理任务(重置密码等)。

另一方面,防火墙是Symfony Security组件的一部分,它决定您是否经过足够的身份验证来访问给定资源。

但我认为你真正追求的是资源, authorisation ,它也是安全组件的一部分,但它不是防火墙。我们的想法是,一旦您通过防火墙,就会向当前用户授予身份验证令牌。请注意,此令牌也可能意味着用户根本未经过身份验证。这个令牌对你想要做的事情非常有用,它基本上决定了当前用户是否可以访问给定的资源。

这导致我们Voters。选民是给予令牌的逻辑单元,一些元数据能够确定令牌是否被授权用于该资源。

因此,在一天结束时,如果您正在运行多租户应用程序,则常见的模式是将几乎每个实体与其所属的帐户/用户相关联。然后检查当前用户是否有权查看/编辑/删除它应该是微不足道的。