
29 楼ben_wu0072015-12-18
没设计 而且这种要写代码 还是变成配好
28 楼tarena_dingtao2013-02-26
[co[size=small][/[align=center][/align]size]lor=red][/color]![]()
![]()
![]()
27 楼fantasy2011-06-20
wangyu1221 写道
之前使用filter对请求的url做权限检测,后来换作拦截器,功能大致上一样,但是感觉filter更灵活。
现在的难题是,如果在某一个功能/页面要对不同的客户做权限管控,比如客户A可以浏览该页面全部内容,而客户B只能浏览一部分,这个需要怎样解决?
可以给每一个需要控制个别定义一个权限code,用户具备这个权限code就显示(或禁用)。在用户登陆的之后,默认调用用户所具备的权限code(可以是DIV的ID), 那么他无论处于什么页面,咱们都明白什么有权限哪些没有。
26 楼tianzizhi2011-06-18
功能权限好处理,上面大部分说的都是功能权限,
业务权限不好抽象处理,差不多都是在详细代码中控制
25 楼wangyu12212011-06-18
之前使用filter对请求的url做权限检测,后来换作,功能大致上一样,但是感觉filter更灵活。
现在的难题是,如果在某一个功能/页面要对不同的客户做权限管控,比如客户A可以浏览该页面全部内容,而客户B只能浏览一部分,这个需要怎样解决?
24 楼phk0708322011-06-09

白糖_ 写道
年初做的一个权限拦截一般是这么的:
页面请求-->spring aop-(没有权限抛出异常)->异常-->错误页面
上面这些方法最大的弊端是抛出异常会耗费巨大的花费,所以我觉得用已经足够了:
页面请求-->权限-(没有权限)->错误页面
哈哈 很像我当时的“实验室产品”的处理方式
23 楼挪威的幽灵2011-06-09
做了个大约的介绍,但是类似于功能点权限和数据权限没有涉及,不够深入吧
22 楼youjianbo_han_872011-06-08
虽然是植入,感觉而是没有用配置文件那样的方法来配置权限好。
21 楼sidac2011-06-08
我的心态是在Struts2里用来推动,比如借助对应该权限验证的Action加验证,具体做法是做个default包的extend包,里面加权限验证,然后还要权限验证的Actionextend这个包。
对于基于Spring的,也可以借助AOP的方法,对应该验证的Action加特点描述,并借助关键字拦截做相应的处理。
对于通常的Action,还可以用父类继承的方法,在父类的初始化方法里进行验证并修改权限标识,在Action的执行方式里访问权限标识并做相应处置,这个办法对类的侵入性就非常强了。
20 楼fq_jeid2011-06-08
spring security..?

19 楼soft_xiaohui2011-06-07
角色权限:根据用户所拥有的角色,查出用户所拥有的权限。
采用过滤器,拦截用户的请求URL,判断用户能否有该权限使用权利。
数据权限:
在用户已有权限的基础上,只允许查询某一部分数据。
以上是个人理解。
怎么做到拥有不同角色的客户在同时拥有某一权限的基础上,查询出不同的数据?
这个难题困惑了我好久,不知现在又没有成熟的做法?
一个思路就是,在把权限,赋给角色时,指定获得数据的范围。
18 楼白糖_2011-06-07
年初做的一个权限拦截一般是这么的:
页面请求-->spring aop-(没有权限抛出异常)->异常-->错误页面
上面这些方法最大的弊端是抛出异常会耗费巨大的花费,所以我觉得用已经足够了:
页面请求-->权限-(没有权限)->错误页面
17 楼huiseyiyu2011-06-07
fantasy 写道

huiseyiyu 写道
我今天的做法是把用途权限和数据权限分两个处理,菜单权限是一次读取的,通过单击菜单开启功能权限判断该菜单有什么用途,由于是ext做的界面,所以就不方便用标签了,进入数据权限过滤,判断该客户的角色该菜单下可发以发现什么数据,多少数据,最后执行action的方式,感觉不爽的是操作几乎都应该进行的交互,而且对应的server方式的hql语句必须开发人员做特殊的处理,目前为了使其通用性,采用的动态hql语句的方法,不知道有没有什么好的方式,小弟借鉴下
关于数据权限,我使用过SQL语句拦截,把拦截的SQL语句成为子查询,然后加where条件。如
select * from (select * from user) where ..
where前面的是可以配置的。
你的sql语句拦截是怎样做的,可否详述?
16 楼huiseyiyu2011-06-07
fantasy 写道
huiseyiyu 写道
我今天的做法是把用途权限和数据权限分两个处理,菜单权限是一次读取的,通过单击菜单开启功能权限判断该菜单有什么用途,由于是ext做的界面,所以就不方便用标签了,进入数据权限过滤,判断该客户的角色该菜单下可发以发现什么数据,多少数据,最后执行action的方式,感觉不爽的是操作几乎都应该进行的交互,而且对应的server方式的hql语句必须开发人员做特殊的处理,目前为了使其通用性,采用的动态hql语句的方法,不知道有没有什么好的方式,小弟借鉴下
关于数据权限,我使用过SQL语句拦截,把拦截的SQL语句成为子查询,然后加where条件。如
select * from (select * from user) where ..
where前面的是可以配置的。
我的做法定义一个baseaction,所有的action都继承这个父类,在父类中定义函数,假设有什么功能List funs;
哪些机构List orgs;然后再拦截中把JoinPoint强转为BaseAction 然后你就可以随便的进行操作了,根据不同情况设置BaseAction中的变量值,同时获得session的方式也可以放到BaseAction中,你在拦截类中可以轻松获得,对于变量的一些值,在过滤后就塞入了,执行到业务action具体步骤时就可以获得使用了,至于怎么使用,可以按照你们业务和架构的不同定义,但针对功能在起初的之后就抓取到,当时是我在做上个平台时使用的,感觉权限应用不尽快,需要重复登录就能获得当前权限,而且登录的之后做权限的存储匹配时间太长,所以想运用后查询的方法,点击菜单的之后在去获得菜单响应的功能
15 楼nirvana19882011-06-07

还是用来封装你的权限控制逻辑比较好,这样方便视图的跳转~~
14 楼cailongyi2011-06-07
学习了。。。。。
13 楼fantasy2011-06-07
huiseyiyu 写道
我今天的做法是把用途权限和数据权限分两个处理,菜单权限是一次读取的,通过单击菜单开启功能权限判断该菜单有什么用途,由于是ext做的界面,所以就不方便用标签了,进入数据权限过滤,判断该客户的角色该菜单下可发以发现什么数据,多少数据,最后执行action的方式,感觉不爽的是操作几乎都应该进行的交互,而且对应的server方式的hql语句必须开发人员做特殊的处理,目前为了使其通用性,采用的动态hql语句的方法,不知道有没有什么好的方式,小弟借鉴下
关于数据权限,我使用过SQL语句拦截,把拦截的SQL语句成为子查询,然后加where条件。如
select * from (select * from user) where ..
where前面的是可以配置的。
12 楼fantasy2011-06-07
huiseyiyu 写道
我今天的做法是把用途权限和数据权限分两个处理,菜单权限是一次读取的,通过单击菜单开启功能权限判断该菜单有什么用途,由于是ext做的界面java接口aop权限管理,所以就不方便用标签了,进入数据权限过滤,判断该客户的角色该菜单下可发以发现什么数据,多少数据java接口aop权限管理,最后执行action的方式,感觉不爽的是操作几乎都应该进行的交互,而且对应的server方式的hql语句必须开发人员做特殊的处理,目前为了使其通用性,采用的动态hql语句的方法,不知道有没有什么好的方式,小弟借鉴下
关于菜单权限,我们之前的做法是把有权限的菜单当做权限点全部存入,然后当客户登录的之后,一次性读出用户所有菜单的权限。菜单分为三级,一次菜单,二级菜单,三级按钮(添加,删除,修改等)。
如果用户有这个菜单的权限code,就可以使用这个菜单。至于是隐藏还是禁用,由界面端自行控制。
11 楼xiaobing2011-06-07
这需要是不错的模式
10 楼jackerxff2011-06-07
实际上还是对Action进行拦截 要进行权限判断 还是要借用Session 好在Struts2中HttpSession变成了Map<String,Object>
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-122837-1.html
以民用为主