看了网上一些关于权限控制的帖子,越看越迷糊,什么用AOP(ASPect Oriented Programming,面向方面编程),用容器,RBAC(基于角色的访问控制方法),SSO,Jive的Proxy模式等等等等,且又是role又是group,真是头都大了,先写个简单的实现方法,以后再研究高深的。
此方法不依靠容器 框架,适用于小系统(主要jsp页面要少于100,因为是硬编码到JSP),适用于要精确控制页面field的情况较多的系统。
(插句话:要分清权限控制与业务逻辑,业务逻辑就是情况由系统运行时的某些条件决定,如学生治理系统中,某一学生进入系统,只能看自己的记录,因为可看的记录是由学号来决定的,所以这是业务逻辑,而又如学生不能看老师的记录,这是有学生的身份来决定的,所以这是权限控制。)
好了,进入正题!
建表:
user(user信息: userID userPassWord 等)
role(role描述:roleID roleDesc)
permission(permission描述:permissionID permissionDesc)
user-role(user role对应关系表:userID roleID)
role-permission(role permission对应关系表:roleID permissionID)
user-permission(user permission对应关系表:userID permissionID)
重要申明:
1 此处role没有继续关系,只是permission的集合
2 user-permission表只是为了方便,其数据是根据user-role role-permission两表得来,只有在user-role role-permission两表有更新的时候更新此表,并不能单独赋予user某个permission,只能赋予user一个或多个role。
3 permission的分配,这是一个难点,很多比较复杂的权限控制系统也是因为这个才发展出来,此处把它尽量想简单,不考虑业务逻辑,以页面为视角,分两层,首先是需要控制的jsp页面,然后是需要控制的页面field(包括link,text,textbox,button等等),field这一层还有privilege之分(R和W,即可读和可写)
基本思路:进入JSP页面时,检查用户信息,查到用户有此permission就包含此代码,假如没有此permission就不包含此代码,此功能由Tag来完成(不会写Tag?不要紧,抄!)。看代码吧!
1 建表(如上)
2 建两个class(bean) (UserProfile是用户基本信息 UserPermission是permission )
UserProfile.Java:
package com.××.××.××;
import java.util.Collection;
public class UserProfile {
private String userId;
private String userType;
private String companyNo;
private String companyName;
private String companyType;
private Collection userPermissions;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserType() {
return userType;
}
public void setUserType(String userType) {
this.userType = userType;
}
public String getCompanyNo() {
return companyNo;
}
public void setCompanyNo(String companyNo) {
this.companyNo = companyNo;
分享到:
相关推荐
C# B/S通用功能权限管理系统的核心在于权限控制模块,它通常采用RBAC(Role-Based Access Control,基于角色的访问控制)模型。在这个模型中,系统首先定义好各种角色及其对应的权限,然后根据用户的角色来决定用户...
【基于B/S库存管理系统】是一种采用浏览器/服务器(B/S,Browser/Server)架构的库存管理解决方案。在这样的系统中,用户通过Web浏览器进行操作,而数据处理和业务逻辑则集中在服务器端进行,大大简化了客户端的需求...
【B/S网盘系统】是一种基于浏览器/服务器(Browser/Server)架构的网络存储系统,它允许用户通过Web浏览器访问、存储和管理自己的文件。这种系统的核心特点是无需安装客户端软件,只需要一个支持JavaScript的现代...
B/S架构是一种网络应用模式,用户通过浏览器进行操作,服务器端处理业务逻辑和数据管理。在C#图书管理系统中,用户无需安装客户端软件,只需打开网页即可进行图书借阅、归还、查询等操作,大大降低了维护成本。...
基于角色访问控制(RBAC)是一种在...RBAC模型的发展和完善,为B/S模式等信息系统提供了一种有效的权限管理解决方案,能够支持组织内部复杂角色关系的映射和权限控制需求,满足现代信息系统安全性和灵活性的双重要求。
在信息技术领域,B/S(Browser/Server,浏览器/服务器)架构是一种广泛应用的软件系统架构模式。它通过浏览器作为客户端,与服务器端进行交互,大大简化了用户端的维护工作,使得系统开发和维护更加便捷。本资源提供...
在IT行业中,B/S(Browser/Server,浏览器/服务器)架构是一种常见的软件系统设计模式,它将用户界面和业务逻辑分离,用户通过浏览器进行交互,而服务器负责处理数据和业务逻辑。这种架构模式大大简化了客户端的需求...
本文旨在探讨一种基于浏览器/服务器(B/S)架构的资料管理系统的设计与实现。随着信息技术的发展和网络技术的进步,B/S架构因其易于部署、维护成本低等优势,在各类信息系统开发中得到了广泛应用。本论文通过对B/S...
1. **B/S架构**:B/S(Browser/Server)架构是一种客户端-服务器模式,用户通过浏览器访问服务器上的应用,无需在本地安装任何软件,降低了用户的使用门槛。这种架构使得系统维护和升级更为便捷,只需更新服务器端...
【标题】"B/S在线文件管理系统"是一种基于浏览器/服务器(Browser/Server)模式的文件管理解决方案,它允许用户通过Web界面进行文件的上传、下载、查看、编辑、删除等操作,无需安装任何客户端软件。这种系统的核心...
研究论文中,作者们通过对C/S和B/S两种模式的深入对比分析,明确指出了B/S模式在生产管理信息系统开发中的优越性,并对其关键技术进行了详尽阐述。 #### 关键技术与实现 在系统实现阶段,B/S架构的核心优势在于其...
员工信息管理系统是一种常见的企业应用系统,它以B/S(Browser/Server,浏览器/服务器)架构为基础,旨在高效管理企业的员工数据,实现人力资源的有效配置。在这个系统中,用户通过浏览器进行操作,而系统的核心处理...
【基于B/S模式的网上购物系统】是一种广泛应用的电子商务平台,它基于Browser/Server(浏览器/服务器)架构,用户只需通过浏览器即可实现在线购物、商品浏览、订单处理等一系列功能。这种模式大大降低了用户使用系统...
《基于Java的B/S结构人力资源管理系统实现》 在信息技术飞速发展的今天,企业对人力资源管理的需求日益增强,而基于B/S(Browser/Server)架构的人力资源管理系统因其便捷性、高效性和可扩展性,成为了企业管理的...
C/S(Client/Server)结构和B/S(Browser/Server)结构是两种常见的软件系统架构,它们在多个方面有着显著的差异。 首先,C/S结构是基于局域网的,通常用于内部网络环境,其中客户端(Client)负责用户界面和部分...
【基于B/S模式图书馆管理系统】是一种采用Browser/Server(浏览器/服务器)架构的图书信息管理解决方案,它将传统的客户端应用程序转换为通过Web浏览器进行访问和操作。这种模式大大简化了用户的使用过程,只需要一...
**B/S结构**(Browser/Server,浏览器/服务器模式)是一种随着Web技术发展而兴起的网络结构模式。在此模式下,客户端的主要应用软件为Web浏览器,例如Netscape Navigator或Internet Explorer等。系统功能实现的核心...
【后台管理系统界面b/s模式】是一种基于浏览器/服务器(Browser/Server)架构的系统设计模式,主要用于企业级应用。在B/S模式下,用户通过Web浏览器访问和操作系统的各项功能,而无需安装特定的客户端软件。这种模式...
Web报表B/S系统是一种基于浏览器/服务器架构的报表解决方案,主要应用于数据分析、数据展示和决策支持。这种系统允许用户通过Web界面访问和交互各种报表,无需安装任何客户端软件,极大地提高了报表的分发效率和使用...