AOP下的权限控制实现(1)(2)
2013-12-03 01:18
导读://权限判断 User user = context.getUser(); if (user.canExecuteThisFunction()) { // do the business method // ... } else { thrownewPermissionDeniedException(); } }这种做法能够将权限的粒度控
//权限判断
User user = context.getUser();
if (user.canExecuteThisFunction()) {
// do the business method
// ...
} else {
thrownewPermissionDeniedException();
}
}这种做法能够将权限的粒度控制到具体的业务方法,因此它的控制能力应该是强大的。可以看到,权限判断部分对于每个方法几乎是独立的。这种在具体功能前加入权限操作检验的实现方式有很多缺点:
⑴ 每个功能类都需要相应的权限检验代码,将程序功能和权限检验混淆在一起,存在紧密的耦合性,扩展修改难度大。
⑵ 以代理模式为每个功能类实现一个相应的代理类,虽然解耦了程序功能和权限检验,但是,从某个角色的权限检验这个切面考虑,涉及具体Proxy类太多,扩展修改难度大。4 权限控制的J2EE容器实现 在AOP概念没有诞生前,J2EE规范已经提供了关于权限控制的容器实现标准,这种变迁结果如下图所示:

图2 权限控制的J2EE容器实现 原来需要每个应用程序实现的权限Proxy转为整个容器的Proxy实现,其中JDK1.3以后的动态代理API为这种转换实现提供了技术保证。 非常明显,通过容器实现权限控制验证可以大大简化应用程序的设计,分离了应用系统的权限关注,将权限控制变成了对J2EE容器服务器的配置工作。 共2页: 1 [2] 下一页 论文出处(作者):
基于多级指引索引的高效技术
一种财务软件质量评估模型的设计