Casbin的Model详解与使用

简介 文档:https://casbin.org/docs/zh-CN/overview Casbin 是干什么的文档说的很详细,就不在重复说了。相信很多人在看完文档之后,仍然是不知道 model.conf 和 policy.csv 是什么,看不懂里面的内容,有一种无从下手的感觉。 知识是有一个知识壁垒的,在你打破这个壁垒之前,你觉得很难,查资料看文章也是云里雾里的。但是在打破壁垒之后,掌握了这个知识在回头看,感觉真的好简单。 我查看了好几篇讲 Casbin 的文章,讲的都不是很通俗易懂,对于掌握了 Casbin 的人来看没什么,但是对于还不会的人看了还是有些云里雾里。所以我放弃了去搜索查看别人的经验,转而去读官方文档,在反反复复读了几遍文档之后终于掌握了 Casbin。不得不说在去学习一个新东西的时候,最好的办法就是去查看官方文档。接下来我会以不会 Casbin 的人的角度来尽可能通俗易懂的讲一讲 Casbin。 Model 与 Policy 接下来我们以 Linux 的文件系统权限为例来讲解 model.conf 和 policy.csv 。 语法 文档:https://casbin.org/docs/zh-CN/syntax-for-models Request 定义 不管哪个语言的 Casbin 都会提供一个 enforce 函数方法来校验是否有权限,[request_definition] 部分就定义了 enforce 函数的参数。 [request_definition] r = sub, obj, act sub, obj, act 经典三元组: 访问实体 (Subject),访问资源 (Object) 和访问方法 (Action),是可以自定义的。表示 enforce 函数需要按此顺序传入三个参数。 在 Linux 文件系统中: sub:代表用户 obj:代表访问的文件或文件夹 act:代表读、写或执行权限 在 RESTful 风格的 API 中: sub:代表请求用户 obj:代表请求路由 例如:/api/user act:代表请求方法 GET、POST、PUT、DELETE Policy 定义 [policy_definition] 部分是对 policy 的定义,对策略权限的规则定义,可以自定义多个规则。...

2022-10-25 · 3 分钟