123456789101112131415161718192021 |
- [request_definition]
- r = sub, obj, act
- # 请求的规则
- # r 是规则的名称,sub 为请求的实体,obj 为资源的名称, act 为请求的实际操作动作
- [policy_definition]
- p = sub, obj, act
- # 策略的规则
- # 同请求
- [role_definition]
- g = _, _
- # 角色的定义
- # g 角色的名称,第一个位置为用户,第二个位置为角色,第三个位置为域(在多租户场景下使用)
- [policy_effect]
- e = some(where (p.eft == allow))
- # 任意一条 policy rule 满足, 则最终结果为 allow
- [matchers]
- m = g(r.sub, p.sub) == true \
- && keyMatch2(r.obj, p.obj) == true \
- && regexMatch(r.act, p.act) == true \
- || r.sub == "root"
- # 前三个用来匹配上面定义的请求的规则, 最后一个或条件为:如果实体是root 直接通过, 不验证权限
|