OA系统设置权限
来源:互联网 发布:淘宝卖雅尼的cd 编辑:程序博客网 时间:2024/04/27 18:39
*1.定义Privilege类:name,url,parent,child,roles(和Role多对多关系)
*2.安装权限列表数据Installer:
*因为需要用到SessionFactory和事务管理,所以把Installer交给Spring管理
*获取ApplicationContext:通过new ClassPathXmlApplicationContext()来获得Spring容器。不能通过实现ApplicationContextAware/或 WebApplicationContextUtils.getWebApplicationContext(servletContext)来获得spring容器(会报错)
*获取Installer实例,再install():ac.getBean("installer")
*3.实现容器初始化监听器InitListener:用于监听Tomcat启动时,就把权限数据name和url取出来放到Application域里
*实现ServletContextListener:
*获取ApplicationContext: WebApplicationContextUtils.getWebApplicationContext(servletContext)或new ClassPathXmlApplicationContext()都可以获得Spring容器,推荐前者。
*获取PrivilegeService: ac.getBean("privilegeService"),注意不能通过注入获得PrivilegeService Bean
*获取topPrivilegeName和allPrivilegeUrls
*4.在岗位管理里添加设置权限的功能:用户拥有的权限等于它所拥有的岗位的所有权限相加
*5.在user类里提供hasPrivilegeByName()和hasPrivilegeByUrl()方法
*6.left页面根据权限显示菜单:
<s:if test="#session.user.hasPrivilegeByName()">
有权限就显示这个菜单
</s:if>
*7.右侧压面根据权限显示<s:action>标签:
*做法一:跟显示菜单一样,每个action都用<s:if../>判断一样
*做法二:改写AnchorTag类,加入doEndTag()方法:
if(user.hasPrivilegeByUrl(priUrl)){
return super.doEndTag(); //正常的生成并显示超链接标签,并继续执行页面中后面的代码
}else{
return EVAL_PAGE; //不生成和显示超链接标签,继续执行页面中后面的代码
}
*注意:在doEndTag方法里,可以通过pageContext来获得当前jsp页面,进而通过pageContext获得session域里的user对象。(因为在定义标签时已经通过setPageContext()方法把当前jsp页面注入进来了)
*8.根据权限拦截用户请求:(防止那些没有action标签但直接通过url访问的非法用户)
*如果user为空且请求的是登陆url,放行;如果user不为空,且该user具有请求的权限,放行;否则返回去权限的错误。
*如果是基础权限,放行.(指在权限列表没有安装数据的其他权限)
注:因为是笔记,写的比较抽象,有什么问题可以给我留言或发我邮箱ziysong@163.com~~~
- OA系统设置权限
- oa系统权限问题
- OA权限系统设计
- OA系统权限管理设计方案
- OA系统权限管理设计方案
- OA系统权限分派实施方案
- OA系统权限管理设计方案
- OA系统权限管理设计方案
- OA系统权限模型设计
- OA系统权限管理设计方案
- OA系统权限管理设计方案
- OA系统权限管理设计方案
- OA系统权限管理设计方案
- OA系统权限管理设计方案
- OA系统权限管理设计方案
- OA系统权限管理设计方案
- OA-基于功能点的权限系统
- OA系统权限管理设计(上)
- EasyFogofWar 简单战争迷雾系统 unity3d插件 使用教程
- IOS_改变UITextField placeHolder颜色、字体
- Move.h && Move.c
- Map----映射
- 深度学习之卷积神经网络CNNs
- OA系统设置权限
- adb 命令的杂七八碎
- Makefile && Config
- 图的深度遍历-邻接表
- Activity onNewIntent注意事项
- 分享一个免费的人脸识别API、SDK~~
- 同学揭周鸿祎在西安交大时期的传奇经历
- 如何配置使用 Log4j
- 添加三角形对象