- 浏览: 506081 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
ben_wu007:
没数据库设计 而且这样要写代码 还是做成配数据库好 ...
使用AOP做权限控制 -
邢邢色色:
支持楼主,但这本书没有讲trident,有些过时了~到amaz ...
《Storm入门》中文版 -
java_web_hack1:
我在FunctionProvider中,获取的Property ...
在Osworkflow中使用PropertySet存储业务数据 -
greemranqq:
腾飞 ~。~
Java并发和多线程译者征集 -
fantasy:
leonevo 写道hi, 我也在设计cmdb. 我觉得基于传 ...
ITSM-CMDB数据库设计-四种方案任你选
见附件!
- 使用AOP来做权限控制.pdf (387.5 KB)
- 下载次数: 3404
评论
29 楼
ben_wu007
2015-12-18
没数据库设计 而且这样要写代码 还是做成配数据库好
28 楼
tarena_dingtao
2013-02-26
[co[size=small][/[align=center][/align]size]lor=red][/color]
27 楼
fantasy
2011-06-20
wangyu1221 写道
之前使用filter对请求的url做权限检查,后来换作拦截器,功能大致上一样,但是觉得filter更灵活。
现在的问题是,如果在某一个功能/页面要对不同的用户做权限管理,比如用户A可以浏览该页面全部内容,而用户B只能浏览一部分,这个应该怎么解决?
现在的问题是,如果在某一个功能/页面要对不同的用户做权限管理,比如用户A可以浏览该页面全部内容,而用户B只能浏览一部分,这个应该怎么解决?
可以给每一个需要控制部分定义一个权限code,用户具有这个权限code就显示(或禁用)。在用户登录的时候,默认读取用户所具有的权限code(可以是DIV的ID), 那么他无论进入哪个页面,咱们都知道哪些有权限哪些没有。
26 楼
tianzizhi
2011-06-18
功能权限好处理,上面大部分说的都是功能权限,
业务权限不好抽象处理,差不多都是在具体代码中控制
25 楼
wangyu1221
2011-06-18
之前使用filter对请求的url做权限检查,后来换作拦截器,功能大致上一样,但是觉得filter更灵活。
现在的问题是,如果在某一个功能/页面要对不同的用户做权限管理,比如用户A可以浏览该页面全部内容,而用户B只能浏览一部分,这个应该怎么解决?
现在的问题是,如果在某一个功能/页面要对不同的用户做权限管理,比如用户A可以浏览该页面全部内容,而用户B只能浏览一部分,这个应该怎么解决?
24 楼
phk070832
2011-06-09
白糖_ 写道
年初做的一个权限拦截大概是这样的:
页面请求-->spring aop-(没有权限抛出异常)->异常拦截器-->错误页面
上面这种方式最大的问题是抛出异常会消耗很大的开支,所以我感觉用拦截器已经足够了:
页面请求-->权限拦截器-(没有权限)->错误页面
页面请求-->spring aop-(没有权限抛出异常)->异常拦截器-->错误页面
上面这种方式最大的问题是抛出异常会消耗很大的开支,所以我感觉用拦截器已经足够了:
页面请求-->权限拦截器-(没有权限)->错误页面
哈哈 很像我当初的“实验室产品”的处理方法
23 楼
挪威的幽灵
2011-06-09
做了个大概的介绍,但是类似于功能点权限和数据权限没有涉及,不够深入吧
22 楼
youjianbo_han_87
2011-06-08
虽然是植入,感觉还是没有用配置文件这样的方式来配置权限好。
21 楼
sidac
2011-06-08
我的想法是在Struts2里用拦截器来实现,比如通过对需要权限验证的Action加验证拦截器,具体做法是做个default包的extend包,里面加权限验证拦截器,然后需要权限验证的Actionextend这个包。
对于基于Spring的,也可以通过AOP的方式,对需要验证的Action加特性描述,并通过关键字拦截做相应的处理。
对于一般的Action,还可以用父类继承的方式,在父类的初始化方法里进行验证并设置权限标识,在Action的执行方法里访问权限标识并做相应处理,这个方法对类的侵入性就比较强了。
对于基于Spring的,也可以通过AOP的方式,对需要验证的Action加特性描述,并通过关键字拦截做相应的处理。
对于一般的Action,还可以用父类继承的方式,在父类的初始化方法里进行验证并设置权限标识,在Action的执行方法里访问权限标识并做相应处理,这个方法对类的侵入性就比较强了。
20 楼
fq_jeid
2011-06-08
spring security..?
19 楼
soft_xiaohui
2011-06-07
角色权限:根据用户所拥有的角色,查出用户所拥有的权限。
采用过滤器,拦截用户的请求URL,判断用户是否有该权限使用权利。
数据权限:
在用户已有权限的基础上,只允许查询某一部分数据。
以上是个人理解。
怎么做到拥有不同角色的用户在同时拥有某一权限的基础上,查询出不同的数据?
这个问题困扰了我很久,不知现在又没有成熟的做法?
一个思路就是,在把权限,赋给角色时,指定获取数据的范围。
采用过滤器,拦截用户的请求URL,判断用户是否有该权限使用权利。
数据权限:
在用户已有权限的基础上,只允许查询某一部分数据。
以上是个人理解。
怎么做到拥有不同角色的用户在同时拥有某一权限的基础上,查询出不同的数据?
这个问题困扰了我很久,不知现在又没有成熟的做法?
一个思路就是,在把权限,赋给角色时,指定获取数据的范围。
18 楼
白糖_
2011-06-07
年初做的一个权限拦截大概是这样的:
页面请求-->spring aop-(没有权限抛出异常)->异常拦截器-->错误页面
上面这种方式最大的问题是抛出异常会消耗很大的开支,所以我感觉用拦截器已经足够了:
页面请求-->权限拦截器-(没有权限)->错误页面
页面请求-->spring aop-(没有权限抛出异常)->异常拦截器-->错误页面
上面这种方式最大的问题是抛出异常会消耗很大的开支,所以我感觉用拦截器已经足够了:
页面请求-->权限拦截器-(没有权限)->错误页面
17 楼
huiseyiyu
2011-06-07
fantasy 写道
huiseyiyu 写道
我现在的做法是把功能权限和数据权限分两个拦截器处理,菜单权限是一次加载的,通过点击菜单进入功能权限判断该菜单有哪些功能,由于是ext做的界面,所以就不方便用标签了,进入数据权限过滤,判断该用户的角色该菜单下可发以看到哪些数据,多少数据,最后执行action的方法,感觉不爽的是操作几乎都需要进行数据库的交互,而且对应的server方法的hql语句需要开发人员做特殊的处理,目前为了使其通用性,采用的动态hql语句的方式,不知道有没有什么好的方法,小弟借鉴下
关于数据权限,我使用过SQL语句拦截,把拦截的SQL语句作为子查询,然后加where条件。如
select * from (select * from user) where ..
where后面的是可以配置的。
你的sql语句拦截是如何做的,可否详述?
16 楼
huiseyiyu
2011-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 楼
nirvana1988
2011-06-07
还是用拦截器来封装你的权限控制逻辑比较好,这样便于视图的跳转~~
14 楼
cailongyi
2011-06-07
学习了。。。。。
13 楼
fantasy
2011-06-07
huiseyiyu 写道
我现在的做法是把功能权限和数据权限分两个拦截器处理,菜单权限是一次加载的,通过点击菜单进入功能权限判断该菜单有哪些功能,由于是ext做的界面,所以就不方便用标签了,进入数据权限过滤,判断该用户的角色该菜单下可发以看到哪些数据,多少数据,最后执行action的方法,感觉不爽的是操作几乎都需要进行数据库的交互,而且对应的server方法的hql语句需要开发人员做特殊的处理,目前为了使其通用性,采用的动态hql语句的方式,不知道有没有什么好的方法,小弟借鉴下
关于数据权限,我使用过SQL语句拦截,把拦截的SQL语句作为子查询,然后加where条件。如
select * from (select * from user) where ..
where后面的是可以配置的。
12 楼
fantasy
2011-06-07
huiseyiyu 写道
我现在的做法是把功能权限和数据权限分两个拦截器处理,菜单权限是一次加载的,通过点击菜单进入功能权限判断该菜单有哪些功能,由于是ext做的界面,所以就不方便用标签了,进入数据权限过滤,判断该用户的角色该菜单下可发以看到哪些数据,多少数据,最后执行action的方法,感觉不爽的是操作几乎都需要进行数据库的交互,而且对应的server方法的hql语句需要开发人员做特殊的处理,目前为了使其通用性,采用的动态hql语句的方式,不知道有没有什么好的方法,小弟借鉴下
关于菜单权限,我们之前的做法是把有权限的菜单当作权限点全部存入数据库,然后当用户登录的时候,一次性读出用户所有菜单的权限。菜单分为三级,一次菜单,二级菜单,三级按钮(添加,删除,修改等)。
如果用户有这个菜单的权限code,就可以使用这个菜单。至于是隐藏还是禁用,由界面端自行控制。
11 楼
xiaobing
2011-06-07
这应该是不错的思路
10 楼
jackerxff
2011-06-07
实际上还是对Action进行拦截 要进行权限判断 还是要借用Session 好在Struts2中HttpSession变成了Map<String,Object>
发表评论
-
Google Guava官方教程(中文版)
2014-10-24 23:48 2906原文链接 译文链接 ... -
《Storm入门》中文版
2014-05-28 12:38 2280本文翻译自《Getting Star ... -
《Java 7 并发编程指南》中文版
2013-11-03 17:00 8916原文链接 作者: Javier Fernández Gonz ... -
Java NIO系列教程
2013-06-25 17:03 4138原文地址:http://tutorials.jenkov.c ... -
[并发译文]Java内存模型手册
2013-01-20 21:13 2049原文地址:http://gee.cs.oswego.edu/ ... -
[并发编程]聊聊并发
2012-12-23 03:44 2186聊聊并发系列文章是我在InfoQ发表的并发编程连载文 ... -
构建JSONP字符串
2012-09-21 10:28 23151.咱们需要一个这样的JSONP字符串 var cal ... -
聊聊并发(二)Java SE1.6中的Synchronized
2012-05-24 13:51 2032本文属于作者原创,原文发表于InfoQ中文站。 ... -
聊聊并发(一)深入分析Volatile的实现原理
2012-02-22 09:39 2800本文属于作者原创,原文发表于InfoQ中文站。 ... -
JVM运行时数据区(2011年6月的JVM规范)
2011-10-18 13:30 1913本文是《The Java Virtual Machine Sp ... -
AOP的实现机制
2011-10-18 10:15 7702附件中有本文的源代码和Pdf版。本文写的很长的原因,是不希望大 ... -
单点登录设计
2011-09-25 15:20 4662使用独立的单点登录应用程序来做单点登录,这样可扩展性和安全性会 ... -
Java虚拟机
2011-08-25 19:50 1961JVM JVM即Java虚拟机,它是一个想象中的机器,通 ... -
HttpClient
2011-08-16 15:27 5840HttpClient是一个模拟HTTP请求的工具类,目前我们在 ... -
Eclipse插件开发
2011-07-22 11:15 1840插件开发工具 我觉得进行RCP开发还是用专门的ID ... -
Opencomet之Session设计
2011-06-24 13:08 1950本文主要介绍Opencomet 里的Session设计。见附件 ... -
单元测试用例设计
2011-06-15 22:42 1487测试用例设计的原则是短,精和易读。 如何做到短: ... -
JAVA6可以使用字符串累加
2011-05-12 10:42 3667在JAVA6中,编译器会始终对字符串的累加操作做优化编译。 ... -
开发中的小心得
2011-02-04 01:13 1576总结一下自己在开发上的一些小心得,持续更新,欢迎大家补充! ... -
单元测试利器之Jtester
2011-02-04 00:30 7196名词解释: Junit:众所周知的单元测试。 官方网址: ...
相关推荐
使用SpringAop使用Oracle数据权限控制
权限控制代码散落在各个类中 权限判断和业务逻辑耦合在一起。
Spring Boot AOP权限控制模块开发,利用AOP功能完成属于自己的权限模块开发
AOP编程例子,拦截器。AOP控制权限编程例子
传统的应用程序实现 J2EE容器实现 AOP下的应用程序权限控制实现
详情请查看博客:<a href='https://blog.csdn.net/byteArr/article/details/103984725'> springboot+自定义注解+AOP实现权限控制(一)和<a href='https://blog.csdn.net/byteArr/article/details/103992016'> ...
AOP下的权限控制实现 AOP下的权限控制实现 AOP下的权限控制实现 AOP下的权限控制实现 AOP下的权限控制实现
访问控制技术近年来成为研究的热点 而基于角色的访问控制则 是这些热点中的焦点 并且在信息管理系统安全方面显示了极...把对资源的访问权限分配给相应的角色根据用户在组织内所承担 的角色进行访问授权与控制.
本篇文章主要介绍了Java之Spring AOP 实现用户权限验证,用户登录、权限管理这些是必不可少的业务逻辑,具有一定的参考价值,有兴趣的可以了解一下。
可扩展性强:使用 Spring AOP 进行方法耗时监测,可以方便的对其他的切面进行扩展,例如:日志、异常处理、权限控制等切面。 4. 提高系统性能:通过对系统中的方法进行耗时监测,可以及时发现系统中的性能瓶颈,...
AOP在公文系统权限控制中的应用,张展展,,本文结合具体的公文管理系统,根据此系统的功能和权限控制方面的实际要求,分析了采用传统方法处理权限控制的不足之处,以及采用
1 / 10 shiro动态URL权限控制 用过Spring Security的...不过在Shiro中,更多的是通过AOP进行分散的权限控制,即方法级别的;而通过URL进行权限控制是一种集中的权限控制。本章将介绍如何在Shiro中完成动态URL权限控制。
博文链接:https://snz.iteye.com/blog/229915
主要介绍了spring aop 拦截业务方法,实现权限控制示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
使用过滤器进行角色控制。使用junit进行EJB3的单元测试。有简单的过程说明。
主要介绍了Spring Boot 通过AOP和自定义注解实现权限控制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
LoginCheck一个用 runtime 的 AOP 做的权限控制
7、灵活的权限控制, 整合shiro,可控制到页面或按钮,满足绝大部分的权限需求,优化权限注解方便权限配置 8、日志记录采用aop(LogAop类)方式,可对用户所有操作进行记录 9、引入quartz定时任务,可动态完成任务的添加...
Spring中的AOP可以控制权限,在我们做项目的时候,用Struts的过滤方法也可以实现。 当然这个文件只是提供测试,我们主要是学习这个AOP的思想。大家下载后可以再摸索......
代码AOP注入,扩展代码,后期维护,控制权限,异常处理