开发人员在安装Ralasafe时候,常遇到的几个错误

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.Ralasafeorg.ralasafe.WebRalasafe的query方法 。
决策权限对应就是org.ralasafe.Ralasafeorg.ralasafe.WebRalasafe的permit方法。这两个接口都非常简单,一看就明白非常容易使用。
B:权限逻辑是什么,也就是开始定制权限管理策略。

下面,以demo里面的借款为例子。借款例子需求是
1,任何人每次借款不超过5000元;
2,任何人每天借款总额不能超过20000元。

那么,我们的分析思路是这样的
1, 需求是针对任何人的,因为我们创建一个用户分类“任何人”(Anyone);
2,当借款金额小于等于5000时,我们允许其借款?这样的策略对吗?不对的!因为假如我借款2000元,但加上这2000元,我今天借款总额达到了21000元。显然这种策略不对。
3,那么该条策略首先应该是借款金额大于5000时,一定是拒绝。
4,如果该策略不匹配,显然说明借款金额就小于等于5000元了,这时我们和今天总借款额进行比较。
策略如图示:
开发人员在安装Ralasafe时候,常遇到的几个错误

这和我们平常编程的if/else非常类似,从上面开始执行。但,Ralasafe的好处是
1, 将if/eslse这样的代码与业务代码分离了;
2, 使用图形化模式进行管理,增加了可读性、提高了效率、需求变动的时候能够不修改代码就能完成,等等。

你可能感兴趣的:(设计模式,oracle,编程,mysql,配置管理)