PHP-Casbin 是一个强大的、高效的开源访问控制框架,它支持基于各种访问控制模型(RBAC ABAC ACL)的权限管理。

ABAC 是 基于属性的访问控制,可以使用主体、客体或动作的属性,而不是字符串本身来控制访问。

推荐:《PHP教程》

ABAC 的官方实例如下:

[request_definition]r = sub, obj, act[policy_definition]p = sub, obj, act[policy_effect]e = some(where (p.eft == allow))[matchers]m = r.sub == r.obj.owner

这是 r.obj 类的定义:

$data1 = new \stdClass();$data1->name = 'data1';$data1->owner = 'alice';$data2 = new \stdClass();$data2->name = 'data2';$data2->owner = 'bob';

然后使用决策器进行决策:

$e->enforce('alice', $data1, 'read');  // true$e->enforce('alice', $data2, 'read');  // false$e->enforce('bob', $data1, 'read');  // false$e->enforce('bob', $data2, 'read');  // true

更多相关文章

  1. 如何直接访问php实例对象的private属性
  2. php通过反射修改Exception实例的message属性
  3. jQuery——将title属性用作悬停的文本,但只在同一父类中使用。
  4. jQuery编程基础精华02(属性、表单过滤器,元素的each,表单选择器,子元
  5. Google地图信息窗口左箭头,右箭头传递TypeError:无法读取未定义的
  6. 3.29 学前端 jquery之操作元素之属性操作
  7. 获取复选框的文本属性
  8. 将JSON结果返回给ajax请求的MVC ErrorHandling属性仅适用于local
  9. JQuery属性与样式――.val()和增加样式.addClass()

随机推荐

  1. Android 内存管理机制
  2. Android API课程1: Application Fundament
  3. Android优秀开源项目收集
  4. android SQLite 使用实例
  5. Android 基本空间划分
  6. android访问服务器端上传及服务器端接收
  7. Android中mpchartlib柱状图的详细属性以
  8. Android的android:clipChildren属性
  9. android 按钮点击的两种方法以及长按事件
  10. Android开发视频教程大总结—23部视频教