一个web项目中要用到用户的权限管理,特意做了一个用户授权管理的POC,分享一下:
涉及到的对象有:
1. 用户:User
2. 部门:Department
3. 角色:Role
4. 受管控的对象:ObjectClass
5. 受管控的操作:Operator
关联关系:
1. 1个用户可以隶属于多个部门
2. 1个用户在一个部门有多个角色
3. 每个角色的权限相同,每个角色拥有多个对象的多个操作权限
4. 不同部门之间的角色不能共享权限,比如【用户A】在【A部门】有【经理】的角色,在【B部门】有【开发】的角色,那么在【B部门】的资源库中他只有【开发】这个角色对应的权限,而没有【经理】的权限。
基于上面的需求创建出如下的数据库表:(MYSQL)
CREATE TABLE IF NOT EXISTS COM_PRO_JUSER ( `ID` INT(11) NOT NULL AUTO_INCREMENT,`NAME` VARCHAR (50) NULL,PRIMARY KEY (`ID`)) COLLATE='utf8_bin' ENGINE=InnoDB AUTO_INCREMENT=1; CREATE TABLE IF NOT EXISTS COM_PRO_JDEPARTMENT ( `ID` INT(11) NOT NULL AUTO_INCREMENT,`NAME` VARCHAR (50) NULL,PRIMARY KEY (`ID`)) COLLATE='utf8_bin' ENGINE=InnoDB AUTO_INCREMENT=1; CREATE TABLE IF NOT EXISTS COM_PRO_JROLE ( `ID` INT(11) NOT NULL AUTO_INCREMENT,`NAME` VARCHAR (50) NULL,PRIMARY KEY (`ID`)) COLLATE='utf8_bin' ENGINE=InnoDB AUTO_INCREMENT=1; CREATE TABLE IF NOT EXISTS COM_PRO_JOBJECTCLASS ( `ID` INT(11) NOT NULL AUTO_INCREMENT,`NAME` VARCHAR (50) NULL,PRIMARY KEY (`ID`)) COLLATE='utf8_bin' ENGINE=InnoDB AUTO_INCREMENT=1; CREATE TABLE IF NOT EXISTS COM_PRO_JOPERATOR ( `ID` INT(11) NOT NULL AUTO_INCREMENT,`NAME` VARCHAR (50) NULL,PRIMARY KEY (`ID`)) COLLATE='utf8_bin' ENGINE=InnoDB AUTO_INCREMENT=1; CREATE TABLE IF NOT EXISTS COM_PRO_JROLEOBJECTCLASS ( `ID` INT(11) NOT NULL AUTO_INCREMENT,`NAME` VARCHAR (50) NULL,`ROLEID` INT (10) NULL,`OBJECTCLASSID` INT (10) NULL,`OPERATORID` INT (10) NULL,PRIMARY KEY (`ID`)) COLLATE='utf8_bin' ENGINE=InnoDB AUTO_INCREMENT=1; CREATE TABLE IF NOT EXISTS COM_PRO_JUSERROLE ( `ID` INT(11) NOT NULL AUTO_INCREMENT,`USERID` INT (10) NULL,`ROLEID` INT (10) NULL,`DEPARTMENTID` INT (10) NULL,PRIMARY KEY (`ID`)) COLLATE='utf8_bin' ENGINE=InnoDB AUTO_INCREMENT=1;
总共7张表,5张表分别对应到上面提到的5个涉及到的对象,还有2个对应关系表:
1. 用户部门角色映射表(USER_ID, DEPARTMENT_ID, ROLE_ID)
2. 角色对象操作映射表 (ROLE_ID, OBJECTCLASS_ID, OPERATOR_ID)
数据库设计好了之后就是UI的设计与开发了。UI的代码比较多,就不上传了,如果你想要源码的话请联系我.
用截图看下效果:
添加用户:
所有用户:
所有部门:
所有角色:
所有对象:
所有操作:
角色权限查看:
角色权限修改:
添加用户部门角色:
所有用户部门角色:
查看用户各部门的角色
查看用户各部门的角色的权限:
差不多就这么多了,谢谢。
相关推荐
此外,项目可能还涉及到权限控制,例如使用Spring Security来实现用户登录验证和权限管理,确保只有授权用户才能进行特定操作。同时,为了保证系统的安全性,可能还应用了CSRF防护、XSS防护等措施。 总的来说,这个...
综上所述,这个权限管理系统利用了B-JUI和jQuery构建用户界面,通过Spring和Spring Boot处理业务逻辑和应用结构,利用Dubbo实现服务间通信,最后依赖MySQL存储和管理所有关键数据。这套组合可以构建出稳定、高效且...
以上就是基于Spring Boot、Maven、Spring Data JPA、Apache Shiro和Easyui实现的通用用户权限管理系统的概述及其关键技术和功能。通过这样的组合,我们可以构建出一个高效、安全、易于维护的权限管理系统,满足各种...
综上所述,"SpringMVC+Hibernate+Easyui权限管理系统"是一个完整的Web应用实例,它展示了如何利用这些技术来构建一个包含用户管理、角色管理和权限控制的系统。对于初学者来说,这是一个很好的学习平台,不仅可以...
Spring Security或类似的权限管理框架可以用来控制这些权限,确保只有授权的用户才能执行特定的操作。 7. **数据库设计**:请假流程管理系统需要与数据库交互,存储请假申请信息、流程实例状态、审批记录等。数据库...
ZRPower7.0是一款基于Spring MVC架构的高效、灵活的Java管理系统开源框架,它整合了Easyui这一前端框架,为开发者提供了便捷的后台搭建方案。这个系统旨在简化企业级应用的开发流程,提高开发效率,同时也为开发者...
spring security 全注解式的权限管理 动态配置权限,角色和资源,权限控制到按钮粒度 采用token进行权限校验,禁用session,未登录返回401,权限不足返回403 采用redis存储token及权限信息 内置功能: 用户管理...
在IT行业中,构建一个权限管理系统是一项常见的任务,它涉及到用户认证、授权以及系统安全等多个方面。本项目"简单的权限管理搭建 shiro +hibernate4+struts2+spring+easyui+fusioncharts部分bootstrap样式"是基于一...
本项目采用Spring MVC、MyBatis、EasyUI、UEditor以及Shiro这五大组件构建了一套完整的权限管理框架系统,旨在提供一套完善的后台管理和用户交互解决方案。 1. Spring MVC:作为Spring框架的核心部分,Spring MVC...
在这个教务管理系统中,Shiro确保了用户权限的安全控制,比如只有管理员才能访问特定的数据或执行特定的操作,保护了系统的安全性。 jQuery是一个快速、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画...
在权限管理系统的构建中,Spring的核心功能是管理bean的生命周期和提供AOP(面向切面编程)。通过配置,我们可以定义不同角色对系统资源的访问权限,例如控制哪些用户可以访问哪个页面或执行哪个操作。Struts2的拦截...
权限管理系统是企业信息化建设中不可或缺的一部分,它主要用于规范用户对系统资源的访问控制,确保数据安全,提高工作效率。本系统采用EasyUI作为前端界面框架,Java作为后台开发语言,利用Ajax进行页面交互,构建了...
综上所述,这个在线考试系统通过SSM框架实现了后端的业务逻辑,利用Bootstrap和jQuery提供了友好的用户界面,同时借助JSTL简化了视图层的代码。管理员和教师可以通过系统进行考试管理和出题,学生则可以登录进行在线...
《基于Spring、Spring MVC、MyBatis的Java客户关系管理系统详解》 在现代企业运营中,客户关系管理(CRM)系统扮演着至关重要的角色,它帮助企业有效地管理与客户的交互,提高销售效率,优化客户服务,从而增强企业...
完整的权限登录系统,里面包括角色分配权限 用户添加角色等权限相关知识。以及用jquery验证重复提交等,希望对大家有用。数据库是sql2005 工程搭建起来直接可以跑,有问题了联系我QQ 497126030
本项目名为“SpringMvc整合mybatis和shiro权限管理系统”,旨在实现一个基于SpringMVC、MyBatis、Maven、EasyUI和Shiro的全面解决方案。下面将详细介绍这些技术及其整合过程中的关键知识点。 首先,**SpringMVC** ...
综上所述,这个后台管理系统利用Spring Boot作为核心框架,通过MyBatis处理数据持久化,前端界面借助jQuery和EasyUI构建,实现了包括角色管理、权限管理、用户管理、菜单管理在内的功能。通过RBAC模型,系统能够灵活...
在OA系统中,Shiro用于用户身份验证、权限管理以及会话管理,确保只有合法用户能够访问特定的资源。 4. **JqueryEasyUI**:JqueryEasyUI是基于jQuery的一款UI组件库,提供了丰富的前端界面组件,如表格、表单、窗口...
该项目的架构搭建使用的是maven,后台是使用的是spring boot框架,数据库的CRUD使用的是注解的方式,权限管理使用的是shiro框架,前端使用的框架是jquery,bootstrap,highcharts4插件,主要有以下功能:用户管理、...
基于Spring Boot的签到管理系统实现了高效、便捷的签到管理,通过Vue.js和ECharts提供了直观的数据展示,结合JQuery优化了用户体验。该系统具有较强的可扩展性和维护性,适应于各种组织的签到管理需求。 通过本文的...