symfony - 动态更改 Symfony 投票策略

标签 symfony security acl symfony-security

使用 Symfony Voters 系统,可以很容易地为 Web 应用程序启动和运行良好的 ACL。但是,您必须在一开始就决定要使用什么策略。

Symfony 支持 3 种策略:affirmativeconsensusunanimous(参见它们的 documentation)

affirmative (default): This grants access as soon as there is one voter granting access;
consensus: This grants access if there are more voters granting access than denying;
unanimous: This only grants access once all voters grant access.

我目前正在使用肯定策略。在一种特殊情况下(到目前为止,也许将来会有更多),我需要使用 unanimous 策略。

有没有办法做到这一点,还是我只需要在那里制作一个自定义检查系统(复制所有相关选民的代码)?

最佳答案

您是否尝试过使用自己的策略通过自定义类扩展 Symfony 的 AccessDecisionManager 并将其注册到服务容器?您可以检查此类的实现,并了解您可以通过在类中创建一个简单的方法来定义自己的策略。

另一种选择是您可以尝试使用 access_controlallow_if,如 here 所述

关于symfony - 动态更改 Symfony 投票策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38162657/

相关文章:

javascript - $request->isXmlHttpRequest() 返回 false

Android共享库完整性保护

ios - 修改当前用户的ACL

jquery - 如何在ajax成功函数中添加flash消息?

php - Symfony2/ Twig : Generate Alternate Absolute URL Path for use with CDN?

php - 对于 Symfony2 功能测试,验证数据库内容的最佳实践是什么?

security - 使用 openssl 将 pem 编码证书转换为 der 时出错

php - 安全措施 - 何时以及如何

UNIX ZFS ACL 未得到遵守

java - 如何清除 UserPrincipal 缓存