上页 目录 Next
查询权限授权策略 非角色权限

决策权限授权策略

Ralasafe 从2个方面保护应用系统:

  1. 从系统查询数据,比如查询客户,查询订单;
  2. 向系统提交数据,比如修改客户信息,删除订单信息。

我们称呼第一种为查询权限,第二种为决策权限。

Ralasafe决策权限支持如下特性:

  1. 根据不同请求用户,返回不同的决策结果;
  2. 返回相应的拒绝信息。

更多信息,查看Javadoc:

  1. org.ralasafe.Ralasafe的permit方法;
  2. org.ralasafe.WebRalasafe的permit方法;
  3. org.ralasafe.entitle.Decision

授权

您可以对决策权限,设置一条或者多条策略。每条策略由决策、用户分类、业务数据和拒绝理由组成。

Ralasafe引擎从第一个策略开始,逐条解析策略。解析步骤如下:

  1. 解析用户是否被授权(功能权限)执行该权限,如果没有,返回拒绝;
  2. 解析第一条策略的用户分类:
    1. 如果匹配,进一步解析业务数据:
      1. 如果匹配,将该策略的决策做为决策结果返回。如果该决策结果是拒绝,将该策略的拒绝理由做为拒绝理由返回;
      2. 如果不匹配,解析下一条策略;
    2. 如果不匹配,解析下一条策略;
  3. 解析下一条策略的用户分类,如果匹配,进一步解析业务数据......
  4. 如果所有策略解析完毕都没有结果,返回拒绝,并将"You are not granted to execute it"做为拒绝理由返回。

Ralasafe demo应用,借款决策权限赋予了如下安全策略:

它表示任何人如果当次借款超过$5000,将拒绝请求;任何人算上本次借款当日借款不超过$20000,将允许该请求。

测试

当我们完成设计工作后,可以立即在线测试。测试界面如下图示:

它由5个部分组成:

  1. 用户选择面板:点击查找按钮,从弹出窗口选择用户;
  2. 上下文值面板:这个面板是可选的,当策略使用到上下文值的时候,才会出现;
  3. 业务数据面板:输入Javabean映射类,输入需要的属性值;
  4. 测试结果面板:点击运行按钮,ralasafe引擎将解析策略;
  5. 策略及策略解析情况面板:显示安全策略,以及策略解析结果(匹配与否);
上页 目录 下页
查询权限授权策略 非角色权限