1. 用户可以从外部的系统接入,模块中的用户只有用户名,密码和描述这三个最基本的系统,然后通过ID和外部系统的用户建立联系
2. 角色之间可以继承,可以有父角色和子角色,而且个数不限,允许多重继承,通过继承之后,角色可以拥有所有父角色的权限
3. 权限的划分方式
a.权限用事件来划分,每个事件通过一个handle来进行处理
b.一个handle就是一个class
c.事件的来源是一个配置文件,因此配置文件的方式可以是这样的
<?xml version="1.0" encoding="GBK"?>
<control>
<!-- 是否自动转向 默认为false-->
<isforward>false</isforward>
<!-- 组件 -->
<cmp id="cmp1" name="组件一">
<!-- 事件 -->
<event id="event1" name="事件一">
<handle>com.snoics.cmp.event.Event1</handle>
<view>/url1/pagename1</view>
</event>
<event id="event2" name="事件二">
<handle>com.snoics.cmp.event.Event2</handle>
<view>/url2/pagename2</view>
</event>
</cmp>
<cmp id="cmp2" name="组件二">
<event id="event3" name="事件三">
<handle>com.snoics.cmp.event.Event3</handle>
<view>/url3/pagename3</view>
</event>
<event id="event4" name="事件四">
<handle>com.snoics.cmp.event.Event4</handle>
<view>/url4/pagename4</view>
</event>
</cmp>
</control>
通过解析这个配置文件,可以得到每个事件的ID,这个ID就是以后的权限标志
给角色分配的权限就是这样的一个一个的标志
4. 通过AOP给应用系统加入权限控制
系统在执行的过程中,能自动的进行拦截,如果发现当前的class是处于配置文件中的某一个handle的时候,自动进行权限验证,分析当前用户所拥有的角色中是否具有执行相关的handle的权限,在验证通过以后允许执行这个handle中的操作,否则拒绝执行
这样做的好处就是能够不在业务系统中写入任何和权限相关的代码,与权限相关的部分全部都是通过配置文件的配置来进行处理的,同时实现了权限控制的完全组件化.
如果大家有什么好的建议欢迎一起讨论
posted @
2006-02-16 13:11 snoics 阅读(1327) |
评论 (3) |
编辑 收藏
摘要: 经过一段时间终于把分页完善了,可以实现JDBC分页(可以根据配置屏蔽不同的数据库之间的差异,并能对自动根据具体的数据库类型进行SQL优化),HIBERNATE2,和HIBERNATE3的分页,对内存中的数组进行分页,并且都支持快速的查询功能,不过hibernate分页的除外.使用HIBERNATE进行分页的时候,需要实现一个接口,将POJO转换成二维数组的形式.同时支持将已经读取到的数据在显示到表...
阅读全文
posted @
2006-02-16 10:09 snoics 阅读(2393) |
评论 (4) |
编辑 收藏