Ralasafe是采用Java编写的数据级权限管理中间件。它含有权限管理引擎和管理界面2大部分组成。Ralasafe采用MIT协议开源免费的。
目前也有一些开源权限管理产品,比如Spring Security、JSecurity等这些框架。而Ralasafe是中间件,采用服务模式与应用交互。
在产品开源这么长时间,得到广大网友的下载和使用,对网友们给予的支持和反馈,表示感谢。再次将一些常见问题总结如下:
1,在ORACLE数据库运行问题。
因为默认ralasafe-demo应用是在mysql运行的,脚本也是采用mysql-administrator工具导出的。如果使用oracle数
据库,建议采用 http://www.ralasafe.org/jforum/posts/list/16.page
Diana给出的脚本(见本页最后2楼)。
另外,在导入的时候,要分别以ralasafe和mydemo用户导入,并导入到ralasafe和mydemo两个schema名下。导入的时候,请以noraml身份导入,而不要以sysdba身份导入。 有位网友就是以sysdba身份导入,结果造成访问报错:数据库表找不到的sql 异常。
2,文件找不到错误,java.io.FileNotFoundException。形如:d:/workspace/...../xml/ralasafe/query/10_ralasafe.xml等
原因可能有两种:
A:web.xml里面没有配置好repositoryDir参数值。该参数值应该指向ralasafe-demo解压后的xml目录(一般情况下,我们把该目录copy到你的工程目录或者$tomcat/webapps/demo目录)
B:如果repositoryDir参数值配置没有问题。那么问题基本上是,原来demo运行起来后,进行了相关操作。比如创建了一个查询、创建了一个用
户分类等,进行了一些ralasafe的演练。造成数据库里面有一些新的“权限数据”。
而此时,开发人员又重新建了搭环境,准备重新再玩一次。开发人员将文件系统的文件目录都替换了,可是没有将数据库数据进行重新替换。造成数据库里面的一些“权限数据”,在文件系统里面找不到对应的策略文件。
3,怎样使用ralasafe进行权限管理编程呢?
很多网友反映看完了ralasafe的文档,却没有找到怎样编程。文档讲了很多怎样设计、怎样设计,对怎样与应用结合,蜻蜓点水,非常少。
确实,ralasafe将与应用结合非常少。但完全不妨碍编程。Ralasafe与其他开源软件最大的不同,就在于减少很多编程和XML配置,而该用图形化工具进行设计,而且能够使用图形化工具在线测试。
Ralasafe开发团队鼓励开发人员这么做:
A:分清楚在哪里引入权限管理逻辑。 权限管理逻辑分为2大类:查询权限和决策权限。
查询权限对应就是org.ralasafe.Ralasafe、org.ralasafe.WebRalasafe的query方法 。
决策权限对应就是org.ralasafe.Ralasafe、org.ralasafe.WebRalasafe的permit方法。这两个接口都非常简单,一看就明白非常容易使用。
B:权限逻辑是什么,也就是开始定制权限管理策略。
下面,以demo里面的借款为例子。借款例子需求是
1,任何人每次借款不超过5000元;
2,任何人每天借款总额不能超过20000元。
那么,我们的分析思路是这样的:
1, 需求是针对任何人的,因为我们创建一个用户分类“任何人”(Anyone);
2,当借款金额小于等于5000时,我们允许其借款?这样的策略对吗?不对的!因为假如我借款2000元,但加上这2000元,我今天借款总额达到了21000元。显然这种策略不对。
3,那么该条策略首先应该是借款金额大于5000时,一定是拒绝。
4,如果该策略不匹配,显然说明借款金额就小于等于5000元了,这时我们和今天总借款额进行比较。
策略如图示:
这和我们平常编程的if/else非常类似,从上面开始执行。但,Ralasafe的好处是:
1, 将if/eslse这样的代码与业务代码分离了;
2, 使用图形化模式进行管理,增加了可读性、提高了效率、需求变动的时候能够不修改代码就能完成,等等。
分享到:
相关推荐
它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...
它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。 WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。...