随笔-26  评论-111  文章-19  trackbacks-0


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 on 2006-02-16 13:11 snoics 阅读(1843) 评论(3)  编辑  收藏 所属分类: 学习 . 感悟

评论:
# re: 关于权限模块的设想 2006-02-16 13:18 | Rivarez
权限体系,包括对操做和资源的控制,以及互斥权限的定义。你说的只有对操做的定义,资源和互斥权限,如何处理呢?  回复  更多评论
  
# re: 关于权限模块的设想 2006-02-16 13:23 | snoics
恩 资源和互斥权限 这确实是一个问题,单单通过配置不能实现对它的控制,不过我想如果通过接口的实现应该还是有可能部分实现的  回复  更多评论
  
# re: 关于权限模块的设想 2007-05-29 23:12 | design
哥哥都是牛×人些!
感动中......!  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: