JAVA用户权限管理概要设计说明书-外发版

合集下载

概要设计说明书

概要设计说明书

概要设计说明书一、引言概要设计说明书是在需求分析阶段后的软件开发过程中,对于软件系统进行整体架构设计的重要文档。

通过概要设计,可以明确软件系统的整体结构,并为详细设计阶段的开展提供指导和依据。

本概要设计说明书将对软件系统的总体设计方案进行详细阐述,包括系统功能、系统架构以及技术选择等方面。

二、系统功能在本节中,将会明确系统的核心功能和扩展功能。

2.1 核心功能系统的核心功能主要包括:1) 用户管理:包括用户注册、登录、修改密码等功能;2) 数据管理:用户可以对系统中的数据进行增删改查等操作;3) 权限管理:不同用户拥有不同的权限,可以根据角色划分用户权限;4) 运营管理:系统管理员可以对系统进行运营管理,包括数据备份、日志管理等;5) 报表统计:系统可以生成各种形式的报表,帮助用户进行数据分析和决策。

2.2 扩展功能除了核心功能外,系统还具备以下扩展功能:1) 模块扩展:系统可以通过添加新的模块,拓展系统功能;2) 多语言支持:系统支持多种语言,方便国际化;3) 安全性增强:系统可以增加验证码、加密等功能,提高系统的安全性;4) 第三方集成:系统可以与其他系统进行集成,实现数据交互。

三、系统架构在本节中,将会描述系统的整体架构及各组件之间的关系。

3.1 系统架构图系统采用三层架构,分为表示层、业务逻辑层和数据访问层。

3.2 表示层表示层是系统与用户交互的界面,采用Web页面的形式进行展示。

用户可以通过浏览器访问系统,并进行相应的操作。

3.3 业务逻辑层业务逻辑层负责处理系统的各种业务逻辑,包括用户管理、数据管理、权限管理等。

该层中的模块会根据具体的功能进行划分,各个模块之间通过接口进行通信。

3.4 数据访问层数据访问层负责与数据库进行交互,包括数据的增删改查等操作。

在该层中,采用数据库连接池的方式提高数据库的访问效率。

四、技术选择在本节中,将会介绍系统所采用的主要技术和开发工具。

4.1 开发语言系统主要采用Java作为开发语言,Java具有良好的平台跨度和可扩展性,适用于大型系统的开发。

概要设计说明书(模板)

概要设计说明书(模板)

XXX项目概要设计说明书目录XXX项目_概要设计书 (1)1 引言 (1)1.1 编写目的 (1)1.2 参考文献 (1)1.3 术语与缩写解释 (1)2 总体设计 (1)2.1 系统概述 (1)2.2 系统设计原则 (1)2.3 设计中应用的关键技术 (1)2.4 系统结构图 (2)2.5 网络结构图 (2)2.6 系统功能模块图 (2)2.7 数据流向图(或称为时序图) (2)2.8 模块构成 (2)3 环境设计 (2)4 硬件设备 (2)5 支持软件 (3)6 接口设计 ......................................................................................................... 错误!未定义书签。

6.1 用户接口 (3)6.2 外部接口 (5)6.3 内部接口 (5)7 数据库设计 (6)7.1 数据库环境说明 (6)7.2 数据库命名规则 (6)7.3 逻辑设计 (6)7.4 物理设计 (6)7.5 安全性设计 (7)8 公用结构 ......................................................................................................... 错误!未定义书签。

9 界面设计 (8)10 出错处理设计 (8)11 开发工具 ..................................................................................................... 错误!未定义书签。

12 附录 (8)1 引言1.1 编写目的[说明编写这份概要设计说明书的目的,指出预期的读者]例如:本设计说明书简单阐明了XXX系统的XXX模块的基本设计思想、基本功能、模块划分以及模块间接口。

Java权限管理(授权与认证)

Java权限管理(授权与认证)

Java权限管理(授权与认证)CRM权限管理有兴趣的同学也可以阅读我最近分享的:Shiro框架原理分析(PS : 这篇博客⾥⾯介绍了使⽤Shiro框架的⽅式实现权限管理)如果发现分享的内容有不合理或者的不对地⽅,请留⾔,我会及时定位分析,感谢!!!⼀、概念权限管理就是管理⽤户对于资源的操作。

本 CRM 系统的权限(也称作资源)是基于⾓⾊操作权限来实现的,即RBAC(Role-Based Access Control,基于⾓⾊的访问控制),就是⽤户通过⾓⾊与权限进⾏关联。

简单地说,⼀个⽤户拥有若⼲⾓⾊,每⼀个⾓⾊拥有若⼲权限。

这样,就构造成“⽤户-⾓⾊-权限”的授权模型。

在这种模型中,⽤户与⾓⾊之间,⾓⾊与权限之间都是多对多的关系,为了实现表之间多对多的关系,必须将⼀个多对多的关系通过⼀个中间表分为两个⼀对多的关系。

因此引⼊中间表,⽤户⾓⾊表和⾓⾊权限表。

⼆、数据库权限管理模块⼀共涉及五张表:1. 三张主表 a) ⽤户表(t_user)、 b) ⾓⾊表(t_role)、 c) 资源表(t_module)、2.两张中间表 a) ⽤户⾓⾊表(t_user_role)、 b) ⾓⾊—资源表(t_permission)、三、权限管理实现1、模块、⾓⾊、⽤户的单表CRUD 模块CRUD:操作t_module表 ⾓⾊CRUD:操作t_role表 ⽤户CRUD:操作t_role表2、授权⾓⾊赋予权限 给⾓⾊赋予权限:使⽤ztree进⾏权限树结构的构建a)赋权限1、先把本模块绑定; 2、绑定⽗模块; 3、绑定⼦模块b)删权限1、先删除本模块; 2、删除⼦模块; 3、删除⽗模块(判断⽗模块是否有其他的⼦模块关联词⾓⾊,如果没有就取消,如果有就关联)a) 使⽤jQuery的插件zTree构建⼀个资源的树结构,树中的内容为表t_module中的数据b) ⽤⿏标点击zTree中的选择框操作表t_permission(⾓⾊资源表)实现给⾓⾊赋予权限⽤户赋予⾓⾊ 给⽤户赋予⾓⾊:使⽤的combobox多选a).添加账号:直接往t_user_role插⼊记录b).修改账号:先删除,在添加创建⽤户或者是修改⽤户信息时都可以通过combobox多选框给⽤户赋予⾓⾊操作t_user_role(⽤户⾓⾊表)3、认证思路: 从t_permission表中获取权限值(acl_value)与页⾯传来的值或者与注解中明确的权限值⽐较,下⾯提供两种思路: 1.页⾯传递过来Request.getParameter(“permission”);⽐对根据userId查询数据库查到的权限列表 contains 2.通过注解明确模块权限值:@requirePermission(permission=”1010”;后台认证:Spring AOP和⾃定义注解实现认证 获取⽤户权限存⼊session,然后⽤户操作资源时会提交⼀个资源的权限值,在判断⽤户是否包含有此权限 使⽤Spring AOP进⾏拦截认证 第⼀步:开启注解驱动<aop:aspectj-autoproxy /> 第⼆步:创建⼀个代理类使⽤@Aspect @Component注解进⾏标记 第三步:定义⼀个切⼊点@Pointcut(" *execution('com.shsxt.controller.*.*((..))')") public void pointcut() {} 第四步:编写⼀个增强:@Around(value="pointcut()") 1.判定⽤户是否登录 2.获取⽤户权限 3.将权限存⼊session--》给前端页⾯判断 4.后台的权限校验 5.返回1. ⾃定义注解2.编写切⾯类定义切⼊点point:⾃拦截有权限注解的⽅法,更能提升性能//@Pointcut("execution(* com.shsxt.controller.*.*(..))")@Pointcut("@annotation(com.shsxt.annotation.RequirePermissions)")public void pointcut() {}通过前台传递permission参数实现:List<String> permissions = permissionService.findRolePermissions(roleIds.substring(0, stIndexOf(","))); String permissioFront = request.getParameter("permission"); // 后台权限认证AssertUtil.isTrue(!permissions.contains(permissioFront), "您⽆权操作此模块");通过注解实现List<String> permissions = permissionService.findRolePermissions(roleIds.substring(0, stIndexOf(",")));if (requirePermissions != null) {String permission = requirePermissions.permission(); // 后台权限认证throw new UnAuthPermissionException(permission, "您⽆权操作此模块");}3.引⼊AOP的namepsace并开启AOP注解驱动<!-- 启⽤@Aspect注解 --><aop:aspectj-autoproxy />4.在需要权限认证的⽅法上启⽤注解Permission应该和module表中的act_value保持⼀致前台认证:Freemarker 内建函数判断获取⽤户权限后在前端的freemarker中利⽤freemarker语法去判断⽤户是否能够操作此资源(list?seq_contains('权限值'))1.SQL:SELECTDISTINCT p.acl_valueFROMt_permission p-- LEFT JOIN t_role r ON r.id = ur.role_idleft JOIN t_user_role ur on p.role_id = ur.role_idWHEREer_id = 10;2.在AOP切⾯类中查询permission取出权限值列表、放⼊Session3.前台页⾯判断:解释:利⽤freemarker 内建函数sql_contains判断序列是否包含参数值,包含返回true类似于java中集合hashmap.contains(value);。

概要设计说明书(模板)

概要设计说明书(模板)

XXX系统XX项目概要设计说明书xxxxx有限公司版本记录目录第一章引言1.1编写目的编写该文档的目的在于明确本系统的用户需求,从技术实现角度描述用户需求,使得软件开发人员与用户对待开发软件的需求有统一的、无二义性的认识。

该文档所描述的内容,可作为软件确认测试的依据,检测所最后的成果是否达到了所描述的技术需求。

该文档的读者为用户代表、软件分析人员、开发管理人员和测试人员。

1.2背景根据xxxxx,为使系统管理更深入业务、更人性化,以及适应国家政策倡导的管理转向服务的发展方向,xxx提出了开发《XXX》的需求。

系统由xxxx有限公司进行系统的设计、开发、以及维护。

系统的主要使用者如下:●xxxxxxxxx。

系统的部署分三方面:●数据库以及服务器端的部署,这两部分部署到xxx机房。

●客户端部署到xxxx机器上。

●xxxx通过浏览器联通互联网进行操作。

1.3参考资料●GB 8566 计算机软件开发规范●GB 8567 计算机软件产品开发文件编制指南●计算机软件工程规范国家标准汇编●《计算机软件工程规范国家标准汇编》第二章任务概述2.1目标xxxxx,建设的目的主要有以下几个方面:⏹xxxx;⏹使系统管理更深入业务、更人性化;⏹通过技术手段把xxxx的数据依据;⏹升级系统的安全性,得到更好的数据保障。

2.2运行环境(按实际环境填写)2.2.1硬件环境服务器配置1. 应用服务器一型号:DELL PowerEdge 6850CPU:2个Intel Xeon MP Model 6 Stepping 8 3.0 Ghz (双核)内存:12G硬盘:2个67.75G2. 应用服务器二型号:DELL PowerEdge 6850CPU:4个Intel Xeon MP Model 6 Stepping 8 3.0 Ghz (双核)内存:16G硬盘:1个67.75G3. 应用服务器三型号:DELL PowerEdge 6850CPU:2个Intel Xeon MP Model 6 Stepping 8 3.0 Ghz (双核)内存:4G硬盘:1个67.75G4. 数据库服务器:两台DELL PowerEdge R910,每台配置:4个 Intel(R) Xeon(R) CPU E7540 @ 2.00GHz Model 46 Stepping 6(六核)CPU,64GB内存,2个278.88 GB 硬盘详细参数参见硬件供应商提供的说明。

统一用户管理及认证系统概要设计说明书

统一用户管理及认证系统概要设计说明书

统一用户管理及认证系统概要设计说明书一、引言随着信息技术的快速发展和应用的深入,系统的用户管理和认证方式越来越成为各行业业务运行的重要环节。

为了提高效率、增强安全性并提升用户体验,我们计划设计一个统一的用户管理及认证系统。

本概要设计说明书将详细阐述该系统的设计理念、功能需求、技术架构和实现方法。

二、系统设计理念我们的设计理念主要基于以下几个原则:1、安全性:系统应确保用户信息的安全,防止信息泄露和滥用。

2、高效性:系统应提供高效的查询和认证服务,以减少用户等待时间。

3、灵活性:系统应支持多种认证方式和用户类型,以满足不同业务需求。

4、可扩展性:系统应具备良好的扩展性,以适应未来业务的发展变化。

三、功能需求本系统主要包括以下功能:1、用户管理:创建、编辑、删除用户信息,支持批量操作。

2、认证服务:提供用户名密码、动态令牌、生物识别等认证方式。

3、角色管理:定义角色及其权限,为不同用户分配相应角色。

4、访问控制:根据用户角色和权限,限制对系统的访问。

5、日志记录:记录用户的活动日志,提供审计和安全分析功能。

6、接口服务:提供API接口,支持与其他系统的集成。

四、技术架构本系统将采用以下技术架构:1、后端:使用Python或Java等编程语言进行开发,采用微服务架构,以提高系统的可维护性和可扩展性。

2、前端:使用React或Vue等前端框架,以提供友好的用户界面。

3、数据库:使用MySQL或PostgreSQL等关系型数据库存储用户信息和认证信息。

4、安全:使用SSL/TLS进行数据传输加密,采用多因素认证提高安全性。

5、云服务:使用公有云服务提供商,如AWS、阿里云等,以实现基础设施的快速部署和高可用性。

五、实现方法我们将按照以下步骤实现本系统:1、需求分析:深入了解业务需求,明确功能和非功能需求。

2、系统设计:根据需求分析结果,进行系统架构设计和数据库设计。

3、系统开发:按照设计文档进行系统开发,编写代码并进行单元测试。

Java程序设计中的用户登录与权限控制案例

Java程序设计中的用户登录与权限控制案例

Java程序设计中的用户登录与权限控制案例在现代软件开发中,用户登录和权限控制是非常关键的功能之一。

本文将介绍一种基于Java程序设计的用户登录和权限控制案例,以帮助读者更好地理解和应用相关知识。

1. 概述用户登录是指用户使用其账号和密码等凭证,验证身份并获得系统访问权限的过程。

权限控制则是根据用户的身份和角色,对系统资源进行管理和控制,从而确保不同用户只能访问其具有权限的内容。

2. 实现步骤(1)创建用户数据表:首先在数据库中创建用户表,存储用户的基本信息,包括用户名、密码以及角色等。

(2)登录验证:用户输入用户名和密码后,通过数据库验证用户的合法性。

(3)权限控制:根据用户的角色,限制其对系统资源的访问权限。

3. 用户表设计创建一个名为"users"的表,包含以下字段:- id: 用户ID(主键)- username: 用户名- password: 密码- role: 角色(如普通用户、管理员等)4. 登录验证功能实现(1)前端界面:使用Java Swing或JavaFX等技术,创建一个用户登录界面,包括用户名和密码输入框以及登录按钮。

(2)后端逻辑:在后端Java代码中,通过获取用户输入的用户名和密码,从数据库中查询匹配的用户数据。

如果查询成功,并且密码匹配,则表示登录成功;否则登录失败。

5. 权限控制功能实现(1)角色管理:创建一个角色表,存储不同角色的权限信息。

例如,可以设定"admin"角色具有最高权限,可以访问和管理所有资源,而"user"角色只能访问部分资源。

(2)资源管理:创建一个资源表,存储系统中的各种资源,如菜单、功能模块等。

每个资源都有一个唯一的标识符和相应的权限要求。

(3)权限管理:创建一个权限表,用于存储角色和资源之间的关系。

通过在权限表中定义角色能够访问的资源,实现权限控制功能。

6. 完整示例代码以下是一个简化的示例代码,仅用于展示实现思路,具体细节可能与实际需求有所差异。

java后台 管理员 权限 设计 与 多种实现

java后台 管理员 权限 设计 与  多种实现

1. 概念权限控制有几个概念:用户、角色、资源、操作、许可一个用户可以拥有多个角色,一个角色可以对应多个用户,一个角色拥有对某些资源的操作,一个资源操作可以授予多个角色,那么哪个角色可以操作哪些资源记录在许可里。

2. 几个table参考Create table--用户表,存放用户信息create table SYS_USR(USR_ID VARCHAR(20) not null,USR_NAME VARCHAR(20),USR_PWD VARCHAR(30),USR_PWD_QUESTION VARCHAR(100),USR_PWD_ANSWER VARCHAR(100),USR_REMARK VARCHAR(255),USR_DISABLE_DATE DA TEtime,USR_EMAIL VARCHAR(50) not null,USR_CREATE_BY VARCHAR(20),USR_CREATE_DATE DATEtime,USR_UPDATE_BY VARCHAR(20),USR_UPDATE_DATE DATEtime)-- Create table--群组表,存放群组信息create table SYS_GROUP(GROUP_ID VARCHAR(20) not null,GROUP_NAME VARCHAR(50) not null,GROUP_REMARK VARCHAR(255),GROUP_CREATE_BY VARCHAR(20),GROUP_CREATE_datetime datetime,GROUP_UPdatetime_BY VARCHAR(20),GROUP_UPdatetime_datetime datetime,GROUP_DISABLE_datetime datetime)-- Create table--用户群组表,存放哪些用户属于哪个群组create table SYS_USR_GROUP(USR_ID VARCHAR(20) not null,GROUP_ID VARCHAR(20) not null,USR_GROUP_REMARK VARCHAR(255),USR_GROUP_CREATE_BY VARCHAR(20),USR_GROUPCREATE_datetime datetime,USR_GROUPUPdatetime_BY VARCHAR(20),USR_GROUPUPdatetime_datetime datetime)-- Create table-- 功能表,这里可以放页面create table SYS_FUNCTION(FUNC_ID VARCHAR(20) not null,FUNC_NAME VARCHAR(20),FUNC_FATHER_ID VARCHAR(20),FUNC_DESC VARCHAR(100),FUNC_REMARK VARCHAR(255),FUNC_DISABLE_datetime datetime,FUNC_CREATE_BY VARCHAR(20),FUNC_CREATE_datetime datetime,FUNC_UPdatetime_BY VARCHAR(20),FUNC_UPdatetime_datetime datetime)-- Create table-- 群组功能表,存放群组可以访问的页面create table SYS_GROUP_FUNC(GROUP_ID VARCHAR(20) not null,FUNC_ID VARCHAR(20) not null,GROUP_FUNC_REMARK VARCHAR(255),GROUP_FUNC_CREATE_BY VARCHAR(20),GROUP_FUNC_CREATE_datetime datetime,GROUP_FUNC_UPdatetime_BY VARCHAR(20),GROUP_FUNC_UPdatetime_datetime datetime)最后通过sql 语句串起来,可以得到一个用户属于哪个群组,这个群组又有访问哪些页面的权限,这样这个用户访问页面的权限就确定了.3. Filter实现<!--超级管理员--><filter><filter-name>adminCheck</filter-name><filter-class>com.tianhua.filter.AdminRightCheck</filter-class></filter><filter-mapping><filter-name>adminCheckUser</filter-name><url-pattern>/admin/user/*</url-pattern></filter-mapping><!--小权限管理员--><filter><filter-name>adminCheckUser</filter-name><filter-class>com.tianhua.filter.AdminRightCheckUser</filter-class> </filter><filter-mapping><filter-name>adminCheckUser</filter-name><url-pattern>/admin/user/*</url-pattern></filter-mapping>public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {// TODO Auto-generated method stubHttpServletRequest req = (HttpServletRequest) request;HttpServletResponse res = (HttpServletResponse) response;HttpSession session = req.getSession(true);AdminDto dto = (AdminDto) session.getAttribute("adminDto");if (dto == null) {res.sendRedirect(url);} else if (!"1".equals(dto.getAdminRightFlag())) {res.sendRedirect(url);} else {chain.doFilter(request, response);}}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {// TODO Auto-generated method stubHttpServletRequest req = (HttpServletRequest) request;HttpServletResponse res = (HttpServletResponse) response;HttpSession session = req.getSession(true);AdminDto dto = (AdminDto) session.getAttribute("adminDto");if (dto == null) {res.sendRedirect(url);} else if (!"1".equals(dto.getAdminRightFlag())) {res.sendRedirect(url);} else {chain.doFilter(request, response);}}4. Java用户角色权限设计实现业务系统中的用户权限管理B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。

概要设计说明书跟需求说明书

概要设计说明书跟需求说明书

概要设计说明书跟需求说明书概要设计说明书与需求说明书概要设计说明书1. 引言概要设计说明书是为了介绍系统设计的整体框架及关键设计方案而编写的文档。

本文档将详细介绍系统概要设计的目标、范围和约束条件,并给出逻辑、物理和数据设计的概述。

2. 系统概述2.1 目标本系统的目标是满足用户需求,提供一个高效、稳定、可靠的软件解决方案,以提高业务效率和客户满意度。

2.2 范围本系统主要包括以下模块:- 用户管理模块:包括用户注册、登录、权限管理等功能。

- 商品管理模块:包括商品分类、上架、下架、库存管理等功能。

- 订单管理模块:包括下单、支付、配送等功能。

- 数据报表模块:包括销售统计、用户分析等功能。

2.3 约束条件- 技术约束:本系统基于JavaEE开发,采用Spring框架、MySQL 数据库等技术。

- 时间约束:本系统的开发周期为3个月,需在规定时间内完成概要设计、详细设计、编码和测试等工作。

3. 逻辑设计本系统采用三层架构,分为表现层、业务逻辑层和数据访问层。

3.1 表现层设计- 用户界面:采用Web前端技术,提供友好的用户界面,支持多浏览器兼容。

- 控制器:负责接收用户请求,调用业务逻辑层的接口,并将数据传递给前端界面进行展示。

3.2 业务逻辑层设计- 用户管理:负责用户注册、登录、权限管理等业务逻辑处理。

- 商品管理:负责商品分类、上架、下架、库存管理等业务逻辑处理。

- 订单管理:负责下单、支付、配送等业务逻辑处理。

- 数据报表:负责销售统计、用户分析等业务逻辑处理。

3.3 数据访问层设计- 数据库设计:- 用户表:包括用户ID、用户名、密码等字段。

- 商品表:包括商品ID、商品名称、价格等字段。

- 订单表:包括订单ID、用户ID、商品ID等字段。

- 数据访问对象(DAO):负责与数据库进行交互,提供数据的增删改查功能。

4. 物理设计本系统采用分布式架构,主要分为前端服务器、应用服务器和数据库服务器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

工作流、网站群、全网短信、销售数据采集,用户权限系统
用户权限管理系统设计概要说明书
广州凯渡信息技术有限公司
2009年7月
文档修改历史
目录
用户权限管理系统设计概要说明书 0
1概述 (2)
1.1软件设计目标 (2)
1.2术语表 ....................................................................................................... 错误!未定义书签。

1.3读者对象 (2)
2系统用例 (2)
2.1角色与用例描述 (3)
2.2用户授权流程 (4)
3系统架构设计 (6)
3.1设计方法 (6)
3.2概念模型 (6)
3.3系统架构 (7)
3.4框架处理顺序 (7)
3.5角色访问控制 (8)
3.6功能模块设计 (9)
3.6.1用户管理 (10)
3.6.2组织管理 (10)
3.6.3资源管理 (10)
3.6.4日志管理 (11)
3.6.5IP管理 (11)
3.6.6系统设置 (11)
3.7接口设计 ................................................................................................... 错误!未定义书签。

3.7.1对外资源权限接口 ........................................................................... 错误!未定义书签。

3.7.2数据库设计 (11)
4系统安全设计 (11)
1概述
1.1软件设计目标
系统的目标包括如下三点:
1)对应用系统的所有资源进行权限控制,比如应用系统的功能菜单、各个界面的
按钮控件等进行权限的操控;
2)完善用户、角色、组织、资源、操作的管理功能,其中的组织管理模块只提供
组织视图,不参与权限的控制管理。

3)开发人员开发新的系统功能,通过资源和角色模块进行操作管理。

使用系统管
理员身份登陆,直接将访问路径作对角色资源授权给操作,实现资源访问控制管理。

1.2读者对象
开发人员、设计人员。

2系统用例
系统业务用例图:
2.1 角色与用例描述
1、系统用户
●系统管理员:具有系统最高级别的权限,实行信息的全局管理与数据维护工作。

●普通用户:由系统管理员分配权限,在角色权限范围内进行访问与操作。

2、系统登陆
判断用户的IP来源是否在黑名单之列,对系统进行第一道防火墙保护。

对用户名和密码进行校验登陆。

如果帐号和密码相匹配,则直接进入用户工作界面;
否则,提示用户“用户名或密码不正确,请重新输入”,窗口跳转回到用户登陆窗口。

3、工作界面
系统根据用户的权限对工作窗口进行初始化,不同角色的用户具有对应的工作窗口界面。

4、用户管理
系统管理员完成用户信息的录入、维护以及用户授权工作,并给用户指定组织机构。

系统应具备根据部门编号,用户编号,用户姓名来检索数据的功能。

5、角色管理
角色是一组用户的集合,具有指定的权限完成特定的资源访问与操作行为。

为对有相似权限的用户进行分类管理,定义了系统管理员、管理员、用户、访客等角色。

角色具有上下级关系,系统管理员通过角色授权分配权限资源,那么,下级角色的权限范围只能在上级权限范围实行进行授权操作。

角色管理包括角色信息录入、信息维护、将角色授权给用户、查看角色用户列表。

6、组织管理
与企业的部门或者机构对应,用于实现对用户的分组归类管理。

组织具有上下级关系,可以实现无限级的子节操作,管理范围包括组织信息录入、组织信息维护、察看组织员工等操作。

7、资源管理
资源权限是系统对用户访问的资源的路径(包括图片、附件、页面等)显示和访问进行控制。

资源具有上下级关系,为了方便界面的渲染与加载,资源的父子层次结构最好不超过3层。

8、操作管理
操作是资源访问控制相关的按钮控件或者操作,用于对资源权限进行更细粒度的管理。

2.2 用户授权流程
系统各大功能模块在用户授权流程中的关系如下图所示:
用户授权流程图
用户授权流程主要是完成用户角色以及用户组织的分配,显示了系统用例之间的相互调用关系。

授权流程如下:
1、创建用户信息,分配业务角色;
2、进行角色管理,如果没有对应的角色,可以在角色管理模块完成角色的创建和资源授
权工作;
3、给用户分配组织机构,完成用户授权。

3系统架构设计
3.1 设计方法
采用了面向对象和组件, 自顶向下逐步迭代的软件工程技术;整个设计方法是基于一个分层的软件体系结构。

采用Powerdesigner12进行数据库以及UML建模,首先定义了不同功能组件的概念模型,随后定义并且描述一个分层的体系结构。

3.2 概念模型
通过对系统用例的分析和对象定义得到的概念模型,如图所示:
系统概念模型
3.3 系统架构
系统采用B/S架构模式,基于BNFW开发,服务封装了对后台数据操纵的细节,并提供安全调用接口. WEB应用程序通过接口访问系统服务,执行用户操作并返回结果。

系统采用Oracle9i数据库和tomcat web应用服务器开发,部署在Linux服务器下运行。

用户权限管理系统概貌如图所示:
系统架构图
3.4 框架处理顺序
系统框架响应用户请求时序图如下:
系统框架时序图
时序图显示了系统逐级响应用户请求的处理顺序。

完成一个业务操作,需求开发人员要完成几大块的内容:

3.5 角色访问控制
系统基于角色进行访问控制,通过ServletFiler对访问的资源进行角色权限验证,校验过程如下图所示:
角色访问控制时序图
1、验证过程和框架处理顺序一致,通过拦截验证包括资源权限验证和操作验证3.6功能模块设计
根据系统用例来划分功能模块,实现系统的应用管理以及对外数据接口,包括系统设置、用户管理、角色管理、组织管理、资源管理、日志管理以及IP黑名单管理。

模块之间的关系如下图所示:
功能模块图
3.6.1用户管理
用户管理页面的操作有查看组织人员列表、新建用户、修改用户、锁定用户。


3.6.2组织管理
组织具有上下级关系,在展现上应该构造出层次的展示效果,功能操作包括新建、修改、删除、员工列表。


3.6.3资源管理
资源管理包括资源列表、新建和修改资源、资源操作管理、查看这几大功能。


3.6.4日志管理
日志管理功能记录了系统的主要操作日志,日志范围包括权限系统内用户、组织、角色、资源操作相关的信息记录。


3.6.5IP管理

3.6.6系统设置


3.6.7数据库设计

4系统安全设计
略。

相关文档
最新文档