关于模块与权限的分离

04-02-18 avenger
第一次来到J道,感觉这里的学习气氛非常好。仔细看了以前的一些帖子,受益非浅。

小弟不才,在最近的系统开发(BS结构的)中,碰到了一个模块与权限分离的问题。

具体描述为:公司要做一个比较大的系统,现在让我来做一个框架,要求灵活性和扩展性都要好。这当然不是什么大问题,关键还是在权限的处理上。我现在希望能够把各模块相对独立开,模块中不牵涉到权限的处理,而把权限完全交给一个流程文件或一个权限类来处理。这样,如果以后权限发生变化的时候,我只需要改变一个流程文件就可以了。

想是这么想,做起来就不这么容易了。如果是一些普通的模块,如,公告管理了、审批管理了还都好说,这些模块的接口都是固定的,我只要控制好添加、修改、删除的权限就好了。可是如果碰到了那种文章管理类型的,权限是按分类来分配的,而不再是以模化为单位了。这种情况下,由于我不能直接在文章模块中写入直接判断权限的代码,而在流程中又无法获取当前文章的分类ID及用户的权限。可能我说的有些太笼统。这两天搞的我自己也有些迷糊了。

其实说到底,就是如果能在流程中很好的控制一个具有子分类权限的模块,并且不需要在模块中加入额外的权限判断代码。不知道我这样说大家是否明白。

希望能看明白的朋友给提个醒。谢谢大家

    

GzEric
2004-02-20 15:21
我觉得你有必要研究一下RBAC,是一个不错的模型,如果实际系统不是真的很庞大,我觉得开发一个完全分离的权限管理模块(系统)价值不算太大,毕竟SSO作为整个系统的入口对性能和设计的要求都比较高啊

但是如果系统真的有必要这样做,RBAC的确起到很好的安全管理机制,但似乎到现在为止也没有一个很成型或者说很好的现成模式可以套用,需要在standard模式下做一些实际的改动才可以。我觉得有点比较重要的是,将系统的粒度放到role上,不要牵扯上user,然后一切access control都通过role来关联和处理。

joe001
2004-03-18 00:27
我J嘞弈K是可以a存在的,在文章模块中可以写入直接判断权限的代码

missxkl
2004-03-19 10:56
对文章权限的管理,能否通过过滤器处理?

jd2bs
2004-03-19 11:28
joe说的很好。我想不要把问题想得太复杂了,KISS原则是有道理的。

在文章模块中可以写入直接判断权限的代码:

if(PrivModule.hasPrivilege(UserRuleObject,ActionObject)){

dosomething();

......

}

猜你喜欢
4Go 1 2 3 4 下一页