创建一个Casbin决策器需要有一个模型文件和策略文件为参数:
e := casbin.NewEnforcer("path/to/model.conf", "path/to/policy.csv")
注意: 你也可以用DB中的策略初始化一个决策器,细节可以看策略存储 部分。
在访问发生之前, 在代码中添加强制挂钩:
sub := "alice" // 想要访问资源的用户。
obj: = "data1" // 将被访问的资源。
act := "read" // 用户对资源执行的操作。
if e.Enforce(sub, obj, act) == true {
// 允许 alice 读取 data1
} else {
// 拒绝请求, 显示错误
}
除了静态策略文件之外, Casbin 还为运行时的权限管理提供 API。例如, 您可以将分配给用户的所有角色按如下所示进行:
roles := e.GetRoles("alice")
有关更多用法, 请参见 策略管理 API。
请参阅 _test
文件以了解更多用法。