Symfony 投票者:访问被拒绝

问题描述 投票:0回答:1

supports()
返回
false
,结果是
Access Denied
,正常吗?根据文档,选民最终应该得到支持,所以我认为应该授予访问权限。

选民::支持($属性,$主题)

当调用 isGranted() (或 DenyAccessUnlessGranted())时,第一个 参数在此处作为 $attribute 传递(例如 ROLE_USER、edit),并且 第二个参数(如果有)作为 $subject 传递(例如 null、Post 目的)。您的工作是确定您的选民是否应该投票 属性/主题组合。如果返回 true,则 voteOnAttribute() 将被调用。否则,你的选民就完了:其他选民应该 处理这个。在此示例中,如果属性是,则返回 true 查看或编辑该对象是否是 Post 实例。

symfony symfony4 symfony4-voter
1个回答
0
投票

如果包括该投票者在内的所有投票者弃权或任何其他投票者失败,它将返回 Acess Denied。

如果所有其他选民弃权,并且您不想抛出访问被拒绝异常,您可以将配置中的

allow_if_all_abstain
属性设置为 true。 文档中对此进行了描述:https://symfony.com/doc/current/security/voters.html#chang-the-access-decision-strategy

© www.soinside.com 2019 - 2024. All rights reserved.