SuperAPI AI 工具集

api-platform-security

编程与开发

查看项目

更新于 10-15 21:08

技能介绍

用途:在 Symfony 的 API Platform 资源上做访问控制,适用于限制每个操作可被谁调用、授权依赖对象所有者或提交数据、用户只能看到集合子集、字段需按角色或归属隐藏等场景。

主要能力:按操作设置 security,使用 is_granted()、object、user 与 securityMessage;把复杂规则移入 voter,如 is_granted('POST_EDIT', object);规则依赖输入时使用 securityPostDenormalize,或在 Validator 之后用 securityPostValidation;用 QueryCollectionExtensionInterface(及 QueryItemExtensionInterface)或 state provider 限定行范围;用序列化组与装饰的 context builder 隐藏字段,并用 access_control 保护防火墙。

使用方式:按默认工作流逐操作配置安全表达式与消息,复杂规则抽到 voter;集合过滤不要用安全表达式,而用扩展或 state provider;每个受保护操作都要测试授权与拒绝两种情况。

限制与注意:安全表达式作用于整个集合而非限定行;检查顺序为 security、反规范化、securityPostDenormalize、验证、securityPostValidation;previous_object 仅存在于 securityPostDenormalize,request 仅在资源级别;默认拒绝,密码等敏感字段用 #[Ignore] 标记;getAccessDecision() 与 Twig 的 access_decision() 需 Symfony 8.1 或更高版本,使用前需确认。输出契约包括每个操作的安全表达式与消息、涉及的 voter、集合与字段按用户的限定方式,以及覆盖允许、禁止和匿名访问的测试。

资料未提供具体安装命令、价格或平台信息。