策略存储
Casbin 中的策略存储由 adapter 负责。enforcer 通过 adapter API 加载以及(可选地)保存策略。
从 CSV 文件加载策略
使用 CSV 文件是最简单的方案,很适合开发和示例场景。
p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
备注
如果字段中包含逗号,请用双引号把它包起来:
p, alice, "data1,data2", read --correct
p, alice, data1,data2, read --incorrect (the whole phrase "data1,data2" should be wrapped in double quotes)
如果字段中同时包含逗号和双引号,请用双引号把它包起来,并通过重复引号来转义内部的引号:
p, alice, data, "r.act in (""get"", ""post"")" --correct
p, alice, data, "r.act in ("get", "post")" --incorrect (you should use "" to escape "")
参见 casbin#886。
Adapter API
| 方法 | 类型 | 说明 |
|---|---|---|
| LoadPolicy() | basic | 从存储中加载全部策略规则 |
| SavePolicy() | basic | 把全部策略规则保存到存储 |
| AddPolicy() | optional | 向存储中添加一条策略规则 |
| RemovePolicy() | optional | 从存储中移除一条策略规则 |
| RemoveFilteredPolicy() | optional | 从存储中移除匹配过滤器的策略规则 |