操作权的管理的疑问
moshangcheng
2010-09-08
最近学做权限管理,打算用spring的拦截器实现基于角色的权限管理。我准备先实现操作权限的管理,数据权限的管理计划以后再做。程序前端页面用extjs设计,后台使用基于spring的action、service、dao三层设计。权限管理的大体设计是这样: 然而有一个难点,比如某个按钮点击后触发后台action的一个方法,但是在该方法内部调用了多个service的方法或一个service的多个方法,这样机会出现相应请求需要多个权限的问题。 我目前想到的解决方案有两个:方案一是在一个action的方法内部只调用service的一个方法,在service的方法内部调用多个dao类的方法进行数据库操作,从而保证一个按钮只对应一个权限;方案二则是一个按钮对应多个权限,登陆用户不具备其中一个权限,则该按钮不显示,后台action的方法的设计,就可以根据该按钮的权限调用相应的service方法。我比较偏向于方案一。 |
|
metadmin
2010-09-08
呵呵 权限管理最佳实践:二,URL权限控制,这里我谈到了为什么不使用service模式来代替功能权限。
从客户角度出发,我认为URL就是权限是最合适的。URL背后的ACTION控制权限。比如没用该权限,ACTION都应该不被执行,更不能调用背后的service(s)了 |
|
moshangcheng
2010-09-08
metadmin 写道 呵呵 权限管理最佳实践:二,URL权限控制,这里我谈到了为什么不使用service模式来代替功能权限。
嗯,我去看看,谢谢你的热心回答。
从客户角度出发,我认为URL就是权限是最合适的。URL背后的ACTION控制权限。比如没用该权限,ACTION都应该不被执行,更不能调用背后的service(s)了 |
|
liangpeng009
2010-10-14
我有个很大的问题数据库里保存了观看的URL那么修改的时候怎么办!一个修改操作要两个ACTION的!这个问题在我的项目里没有解决!我是将do操作放行,然后在ACTION里拦截报错!希望老鸟指点!!
|
|
rabo
2010-10-14
所以,我认为功能权限应该定义URL,而不是ACTION。这样就解决了问题了吧?!
但ACTION里面有数据级权限需要控制,你可以使用硬编码模式,也可以才有RALASAFE来帮助你 |
|
metadmin
2010-10-16
liangpeng009 写道 我有个很大的问题数据库里保存了观看的URL 那么修改的时候怎么办!
修改是指什么场景?没有弄明白你的意思。 |