casbin学习 - yellia1989/learn-doc GitHub Wiki
casbin是干嘛的
casbin是权限控制系统。权限控制就是代表是有权访问某个资源。这里面包含了3个基本的概念
- 请求方
- 资源
- 结果(是/否)
casbin 把这3个概念抽象出来,让我们可以通过2个文件来配置。一个是model文件,一个是policy文件。
model文件
model一般可以如下:
[request_definition]
r = sub, obj, act
[policy_definition]
p = sub, obj, act
[policy_effect]
e = some(where (p.eft == allow))
[matchers]
m = r.sub == p.sub && r.obj == p.obj && r.act == p.act
request_definition中定义的是访问资源的格式,这个和enforce函数中的参数要一一对应
policy_definition中定义了policy文件中每一行的格式
policy_effect和matchers主要负责得出最终的结论(是否有权限)
policy文件一般格式
p, alice, data1, read
p, bob, data2, write
前面这个p要和policy_definition中的p对应
casbin怎么使用
系统负责维护请求方(也就是用户), 资源列表(也是权限)。系统通过调用casbin提供的api来动态的生成policy。