关于 权限模块
参阅了JDON中几个关于权限设计的帖子,如 http://www.jdon.com/jivejdon/thread/2897,思维上有些理解了,但是对于怎样实现还是很模糊,比如:用户U的某一个操作operate1,当这个操作请求被服务器接收并交给Permission来判断是否有权限的时候,Permission模块如何获知这个操作(operate1)关系到哪个资源(resource)的哪个权限(privilege)呢?
我知道有一种实现方法,比如一个通告的新增(CREATE)操作,流程如下:
1.请求通告新增页面,在转向这个页面的同时,将这个页面将要进行的操作标识传过去(如:task=create_announce)
2.转到页面时,用hidden表单项保存这个task标识
3.提交新增通告的操作,权限判断:Permission根据TASK参数来判断当前操作-相关的resource和privilege,以便判断权限
貌似STRUTS中有一个示例简单的用了这种方式,感觉缺点很多。
一是权限的管理涉及到了表示层,需要页面来配合
二是安全问题,恶意的用户可以更改TASK表单项的值,再提交,不过可以将TASK表单项的KEY-VALUE都加密进行传输,有点麻烦了
所以想问问大师们权限管理 实现的基本流程,权限管理的基本思想我已经了解了不少。权限判断的核心的重要几个接口也了解一点,可能思维太窄了,所以在想,用户的任一一个操作,权限管理类如何获知这个操作-相关的resource和privilege
记得banq说过的,貌似banq的意思是将privilege等同于function,这意思是?直接根据service层的具体方法(名称)来判断当前操作的resource和privilege吗。。。。