J2EE系统的简单权限管理
来源:互联网 发布:it was until 编辑:程序博客网 时间:2024/06/05 18:50
目前,系统已经开发接近尾声,主要的功能已经开发完成。用户提出增加权限管理功能。本身来讲系统的权限相对简单,只需要区分出某一页面对某个登录人员是什么权限即可(只读,编辑/保存/删除数据两种权限)。增加一个较全面的权限管理模块有些杀鸡用牛刀的感觉。所以,我们决定开发一个简单的权限管理,只需满足系统需要即可。思路是当用户访问某一个具体功能页面时调用嵌入jsp的java代码,判断该用户是否拥有修改编辑页面的权限,如果没有此权限则调用js方法设置页面为只读。
这样的好处是开发快捷方便,前后也就2个小时;不需要修改中间层Form的java代码;只需在jsp中引入很少的代码(全下来不超过50行)。过程及代码如下:
1.数据库表
增加一个Page表,保存每个功能页面的url,这样可以在用户登录进行权限判断时判断是哪一个页面。
Page的部分表结构:id,page_id, url, module_name, page_name
增加一个权限表,用来保存不同userid所拥有的不同page的权限。
Authority部分表结构:id,operator_id, page_id
2.每个jsp功能页面
在每个jsp页面,引入authority.jsp页面。并在页面初始化js方法中调用setPageAuthority方法。该方法放在authority.jsp;
<%@ include file="/include/authority.jsp" %>function pageInit() { ... //判断权限是否是只读 setPageAuthority(); ...}
3.authority.jsp
在此jsp页面中需要嵌入java代码,判断当前用户的userid并根据当前页面的url去数据库中查找相应的权限。如果有此页面的编辑保存删除数据的权限,则不调用setReadOnly.js方法,这段js代码可以将整个页面设置为只读(增加div层,设值为透明)。如果没有此页面的权限,调用js方法,设置页面只读。
<% int operatorId = UserContext.getCurrentUser().getId(); String url = request.getRequestURI(); boolean hasRight = hasPageRights(operatorId,url); if(!hasRight){%><script> //若没有页面编辑权限,设置页面为只读模式 function setPageAuthority() { var readOnlyDiv = document.createElement("div"); readOnlyDiv.style.width = document.body.clientWidth;//设置层的宽度 readOnlyDiv.style.height = document.body.scrollHeight; //设置层的高度 readOnlyDiv.style.filter = "alpha(opacity=1)"; //设置层为透明 readOnlyDiv.style.backgroundColor = "white"; readOnlyDiv.style.position = "absolute"; //设置层的位置 readOnlyDiv.style.left = "0"; readOnlyDiv.style.top = "0"; readOnlyDiv.style.zIndex = "1000"; document.body.appendChild(readOnlyDiv); }</script><% } else{ //具有页面编辑权限,方法为空,不设置div层 %> <script> function setPageAuthority() {} </script> <% } %>
- J2EE系统的简单权限管理
- 简单的权限管理系统
- 简单的权限管理系统 - SSM + ExtJS
- 系统的权限管理
- J2EE-RBAC权限管理
- J2EE-RBAC权限管理
- J2EE-RBAC权限管理
- 面试题 简单基于角色控制的权限管理系统
- SpringMVC、MyBatis实现的一个简单权限管理系统
- SpringMvc+hibernate+easyui简单的权限管理系统
- spirngMVC+Hibernate+SpringSecuirty+Extjs一个简单的权限管理系统
- 权限管理系统数据库设计的简单构思
- SpringMvc+hibernate+easyui简单的权限管理系统
- javaweb+SSH实现简单的权限管理系统
- AspectJ 简单的权限管理
- C# 简单的权限管理
- 毕业设计:基于J2EE的住房公积金管理系统
- J2EE管理系统的前台技术选型
- 移动表到别的文件组,考虑了架构的问题
- asp.net打开office文件检索COM 类工厂中CLSID~组件加载失败(解决方案)
- 如何添加透明幕墙
- ios 关于推送发布的一些流程
- SQL SERVER 执行计划各字段注释
- J2EE系统的简单权限管理
- SQL逻辑读高的优化
- c++实现的一对锁的封装(挺有意思的)
- android 项目移植/分辨率适配与dip(dp)的使用
- 数据结构学习之链栈c++实现
- Socket(UDP)通信winform demo
- 单队优化DP
- NSLog使用详解
- 范特西的伤感空间日志推荐:我在风中颤抖,你却再难回头