1. PERM原模型
定义一个策略,定义一个匹配规则,通过请求参数与策略通过规则进行匹配,获得一个eft影响,拿到影响的结果,进到影响的表达式,返回一个布尔值。
1.1 基本参数
- subject(sub访问实体)
- object(obj访问的资源)
- action(act访问方法)
- eft(策略结果,一般为空,默认指定allow,还可以定义为deny,是硬编码写死,只能是这两个值)
1.2 模型介绍
-
Policy 策略 p={sub,obj,act,eft}
- 策略一般存放在数据库,因为会有很多
-
Effect 影响
- 他决定我们是否可以放行
- e = some(where(p.eft == allow)) 这种情况下,我们的一个matchers匹配完成得到了allow那么这条请求将被放行
- e = some(where(p.eft == allow)) && !some(where(p.eft == deny))
- 这里的规则是定死的
- some(where (p.eft == allow)) 能返回来一条allow的
- !some(where (p.eft == deny)) 没有一条是