权限功能设计说明

1     功能介绍

1.1   已实现功能

用户管理

Ø  新增用户信息

Ø  删除用户信息

Ø  修改用户信息

Ø  查看用户信息

Ø  分配角色

角色管理

Ø  新增用户角色

Ø  删除用户角色

Ø  修改用户角色

Ø  查询用户角色

Ø  分配用户

权限验证

验证匿名用户权限:匿名用户只能访问登录、获取验证码、判断是否登录等无需授权功能。

验证授权用户权限:只允许访问公共接口(获取下拉数据、获取地址信息等接口)和已授权接口。

1.2   用户管理模块

见表结构介绍。

1.3   角色管理模块

见表接口介绍。

1.4   验证功能验证模块

未登录验证

客户端访问接口:访问服务器某个接口并至少传一个参数(这里用的是页面唯一编码)。

服务端验证权限:判断当前接口是否允许匿名用户访问。是:允许访问;否:不允许访问。

已登录验证

客户端访问接口:访问服务器某个接口并至少传一个参数(这里用的是页面唯一编码)。

服务端验证权限:判断当前接口是否允属于公共接口,是:允许访问;否:判断当前用户是否拥有该权限,是:允许访问;否:不允许访问。

权限验证流程图

1.5   表结构

Menu(菜单表)

用于存放菜单信息,包括菜单名称、图标、样式、菜单对应的URL等,多级菜单需要存菜单级别、父级ID。

MenuFunction(菜单功能表)

用于存放菜单所对应的接口编码、接口所属菜单(如果一个接口存在多个菜单下,同时需要存多条数据)、接口所属页面(只所以要存页面是为了控制页面上按钮的权限,方便前端做权限验证)、接口所属操作ID(页面按钮ID)。

Role(角色表)

用于处方用户和角色关系,目前用户和角色做的是一对一关系。

RoleFunction(角色功能表)

用于存放角色和功能接口对应关系,此表为业务核心表。用于验证用户是否有访问权限。

表结构详情:

Menu(菜单表)

名称

代码

主键ID

ID

菜单URL

MenuUrl

菜单名称

PageName

状态(1:启用,0禁用)

Status

菜单级别

Level

父级ID

ParentID

NO

NO

创建时间

CreateTime

修改时间

ModifyTime

排序

Sort

icon

icon

MenuFunction(菜单功能表)

名称

代码

主键ID

ID

功能编码(功能分类)

FuncCategory

功能名称

Name

菜单ID

MenuID

页面编码

PageCode

操作id(页面按钮ID)

OperateID

接口id

Interface

类型(1:默认接口,2:对外接口,3:通用接口)

Type

NO

NO

创建时间

CreateTime

修改时间

ModifyTime

排序

Sort

状态(1:启用,2:禁用)

接口访问级别0匿名1登录即可访问2授权才能访问

Status

AccessLevel

Role(角色表)

名称

代码

ID

ID

角色名称

RoleName

自动排序

NO

状态

Status

创建时间

CreateTime

修改时间

ModifyTime

用户微信昵称

CreateID

ModifyID

ModifyID

RoleFunction(角色功能表)

名称

代码

主键ID

ID

自增量

NO

角色ID

RoleID

菜单id

MenuID

功能id

FuncID

功能分类

FuncCategory

按钮标识

OperateID

接口id

Interface

页面编码

PageCode

状态(1.启用,2.禁用)

Status

类型(1.菜单,2.功能,3.第三方接口)

Type

创建时间

CreateTime

修改时间

ModifyTime

排序

Sort

接口访问级别0匿名1登录即可访问2授权才能访问

AccessLevel

1.6   代码

前端

1.      封装get、post、getAsnyc和postAsync方法,传入pageCode参数。

2.      页面添加pageCode全局变量

3.      菜单根据用户权限自动加载

4.      页面按钮权限控制(在页面控制按钮权限,减少接口调用的压力)

后端

Ø  权限验证公共类:

1.      验证当前接口是否属于看匿名访问接口

2.      验证当前接口是否已授权

Ø  调用权限验证:

1.      Base类添加权限验证方法,此处分三部分验证1、验证当前调用的接口是否属于可匿接口;2验证当前用户是否登录超时;3、验证当前接口是否允许调用。

2.      集成Base类,执行功能前调用Base类中权限验证方法。

权限设计,可控制每个接口的使用。相关推荐

  1. Java权限设计与控制

    1.场景还原 近期,由于项目中要引用权限模块,于是笔者趁着空暇时间写了一个权限控制的小Demo,现在跟大伙讲讲权限的原理. 2.权限数据库设计 user:用户表 user_role:用户角色表(用户跟 ...

  2. RBAC、控制权限设计、权限表设计 基于角色权限控制和基于资源权限控制的区别优劣

    RBAC.控制权限设计.权限表设计 基于角色权限控制和基于资源权限控制的区别优劣 一.介绍 二.基于角色的权限设计 三.基于资源的权限设计 四.主体.资源.权限关系图 主体.资源.权限相关的数据模型 ...

  3. Java数据库行列级数据权限控制_关于数据库表字段的数据权限设计

    吐槽:刚在同事的帮忙下,把maven工程成功导入到eclipse,期间遇到的最大问题就是安装eclipse插件,花费了其中大部分的时间 现在做的研发产品,遇到的一个新的需求是"控制外部系统对 ...

  4. 基于shiro的权限设计

    shiro介绍 Apache shiro是一个权限控制框架,它将安全认证抽取出来,实现用户身份认证,权限授权,加密,会话管理等功能,是一个通用的安全认证框架,而且还可以用于分布式集群.功能如下 1.验 ...

  5. 跟我学Springboot开发后端管理系统8:Matrxi-Web权限设计实现

    上篇文章讲述了Matrix-web整体实现的权限控制的思路.现在来回顾一下: 首先,用户需要登录,填用户名.密码,后端接收到登录请求,进行用户.密码的校验,校验成功后则根据用户名生成Token,并返回 ...

  6. 跟我学Springboot开发后端管理系统7:Matrxi-Web权限设计

    Matrxi-Web权限设计 对于一个后端系统来说,权限是基础设施,是安全保障.没有权限,系统可能随时面临各种风险,所以权限设计对后端系统来说至关重要.在Javaweb开发中,有很多权限开发的框架,比 ...

  7. 权限设计的一些想法和思考

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:cross my.oschina.net/cloudcros ...

  8. python开发企业管理平台_我的第一个python web开发框架(34)——后台管理系统权限设计...

    框架底层和接口终于改造完成了,小白再次找到老菜. 小白:老大,上次你对后台权限系统简单的讲了一下,我一点头绪都没有,现在有空完整的说一说吗? 老菜:说到权限系统,要讲明白真不容易,权限系统并不是越复杂 ...

  9. 浅谈OFBiz之权限设计

    简介 Apache Open For Business(Apache OFBiz) 是Apache开源的一个经典ERP项目.它提供了一套企业应用,用于集成以及自动化一些企业的"商业流程&qu ...

  10. 一个页面区分管理者和普通用户如何设计_产品经理要做的操作权限/数据权限设计...

    产品经理在工作中还需要知道一个:用户权限设计能力.权限设计理念贯穿于后台产品.以及用户前端产品. 权限能力包括两类:数据权限.系统操作权限 有的人会好奇,为什么前端产品会有有权限管理的要求?接下来我将 ...

最新文章

  1. RCP中product文件的用法
  2. [20180602]函数与标量子查询3.txt
  3. templateclass T函数模板
  4. unity3d UGUI Scroll View的使用
  5. 三因子两水平doe_DOE试验设计案例
  6. java基础之访问控制符
  7. axios nodejs 上传图片_vue项目中使用axios上传图片等文件操作
  8. 【ArcGIS微课1000例】0021:ArcToolBox工具箱功能与环境概述
  9. 算法(8)-leetcode-explore-learn-数据结构-链表
  10. java多线程教程_java 基础教程之多线程详解及简单实例
  11. 【数值分析】数值分析的微积分学基础
  12. “深度学习已死,可微编程万岁!”LeCun老师为何又语出惊人?
  13. windows 2003活动目录更名操作[图]
  14. 垂直居中小记 line-height table vertical-align:middle
  15. 开源日志系统log4cplus(五)
  16. BZOJ——T 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛
  17. 广州大学计算机考研有歧视吗,本科985,考研被调剂去了普通一本广州大学,有必要读吗?...
  18. cad图层置顶的lisp_cad中的底图老置顶,如何让它永久置底?
  19. 爬虫笔记41之反爬系列四:字体反爬、JS反爬
  20. AD仿真功能描述文档

热门文章

  1. 转《DB2操作指南及命令大全》
  2. 下载苹果APP历史版本
  3. android 命令pm 全称 packagemanager,关于android:PackageManager安装应用笔记
  4. getParameterValues
  5. 基于JSP+Servlet的旅游景点服务平台(旅游网站)
  6. 【单片机】2.1 AT89S52单片机的硬件组成
  7. python之简易飞机大战
  8. python短时傅里叶变换_短时傅里叶变换(Short Time Fourier Transform)原理及 Python 实现...
  9. 高等数学复习之空间解析几何
  10. CentOS安装微软雅黑字体