Ralasafe/user/hello world

来自开放百科 - 灰狐
2011年6月12日 (日) 15:41Grady (讨论 | 贡献)的版本

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到: 导航, 搜索

目录

Ralasafe功能

从某种意义来说,Ralasafe给权限管理领域带来一种全新思考。它是从业务功能角度出发,并非从编程角度出发;提供最简单实用的API,供开发人员集成到业务系统,将复杂的权限逻辑全部交给Ralasafe;并非提供某种强大而又神奇的模板,或者某些强大而又神奇的权限设置界面。

通过API调用和Ralasafe设计器设计工作,减少很多编程工作。Ralasafe提供的界面完全面向开发人员和IT管理员,因此开发人员还需要为业务系统编写“权限管理”相关界面。(仅仅是界面,不需要在各处业务应用做权限逻辑验证等开发工作)

查询权限

场景举例:总公司用户查询所有员工;北京分公司用户只能查询北京分公司及下属子公司员工;海淀营业部用户只能查询海淀营业部员工。

Ralasafe的查询API,可以满足以上场景:

//返回QueryResult对象,

//通过QueryResult.getData()获取查询值Collectio<定制的ViewObject/Javabean>

org.ralasafe.Ralasafe.query(int privilegeId, User user, java.util.Map context);

通过API告诉Ralasafe当前是谁(User user),打算进行什么操作(int privilegeId,也相当于请求查询什么数据)。API本身并不包含任何权限信息。这种层级查询权限,交由Ralasafe设计器解决。Ralasafe设计器设计权限策略。当应用程序调用Ralasafe API的时候,将由Ralasafe专业引擎解析权限策略,并进行数据库查询,返回查询结果。以下是该场景设计权限策略:

[插入图片]

Ralasafe同时还提供了分页查询和自定义查询API。

package org.ralasafe;

 

import org.ralasafe.entitle.QueryResult;

...

public class Ralasafe {

//分页查询

public static QueryResult query(int privilegeId, User user, java.util.Map context, int first, int max);

//自定义条件查询

public static QueryResult query(int privilegeId, User user, java.util.Map context,

                                           CustomizedWhere where);

//自定义条件并分页查询

public static QueryResult query(int privilegeId, User user, java.util.Map context,

                                           CustomizedWhere where, int first, int max);

}

...

package org.ralasafe.entitle;

public class QueryResult {

//查询结果记录数

public int getTotalCount();

}

决策权限

场景举例:ATM机取款每次取款额不能超过¥5000,每天取款总额不能超过¥20000。 Ralasafe的决策API,可以满足以上场景:

//返回Decision对象,通过Decision.isPermit()获知是否有操作权限;

// 通过Decision.getDenyReason()获知拒绝理由

org.ralasafe.Ralasafe.permit(int privilegeId, User user,

                            java.lang.Object businessData, java.util.Map context);

通过API告诉Ralasafe当前是谁(User user),打算进行什么操作(int privilegeId),操作数据是什么(Object businessData)。API本身并不包含任何权限信息。这种决策权限,交由Ralasafe设计器解决。Ralasafe设计器设计权限策略。当应用程序调用Ralasafe API的时候,将由Ralasafe专业引擎解析权限策略,并返回决策结果。以下是该场景设计权限策略:

[图片]

小结

Ralasafe的API非常简洁易懂,而且Ralasafe的图形界面设计出的权限策略,也非常简洁易懂。这样不仅有助于开发人员集成Ralasafe,而且有助于向客户说明系统安全状况到底如何。

Ralasafe的图形设计,不仅减少了很多开发工作量;在权限需求发生变动的时候,有助于快速更改。

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱