j2EE项目中角色,菜单,权限的设计和应用

原创 2016年01月12日 11:33:30

引言

java ee在项目中一般需要进行权限管理,权限管理控制角色的相关权限,如菜单的显示,菜单二级菜单的权限,三级操作的权限等等。当项目越来越大,菜单越多,二级及三级菜单添加频繁,就需要良好的权限管理。这对前期数据库的设计非常重要,下面已某支付公司后台管理系统的权限管理为模板作初步的分析。

数据库基本设计

以下只列举了关联字段或者重要字段

1.菜单:逻辑数据,为主菜单和二级子菜单的固定数据

m_menu
+ id,
+ name,
+ parent_menu_id,
//主菜单id为1,5,10,15,20; parent_menu_id = null
//其他菜单设置parent_id, 如终端日志菜单(二级菜单)(id = 41), parent_menu_id = 15(终端监控 一级菜单)

2.视图:逻辑数据,为二级菜单的name, desc和其主菜单的对应关系逻辑,固定数据

m_view
+ id
+ name
+ desc
+ menu_id
//终端日志二级菜单数据: 31,TerminalLog, TerminalLog, 15

3.权限列表:逻辑数据,为功能操作与视图的对应逻辑关系,固定数据

m_permission
+ id
+ name
+ view_id(非FK)
//id(1,2,3,4)为增删改查,id其他为各个二级菜单(view_id对应于二级菜单视图)下的功能,如应用配置,默认参数,配置等等
//终端日志需要查询功能, (null, 0, query, 31) –> id:

4.视图权限: 固定数据,即当前权限能否显示这个视图

r_view_permission
+ id
+ permission_id
+ view_id
//终端日志功能的query查看功能需要权限,(null, 1, 31)

5.角色: 相对固定数据,为当前系统中的角色列表

m_role
+ id
+ name
+ desc
//如”admin”(1, admin, 管理员)

6.角色-菜单关系:动态数据,由客户自己设置,控制某角色菜单是否显示在index页面

r_menu_role
+ id
+ menu_id
+ role_id
//为admin添加终端日志菜单,显示在主页面 (null, 41, 1)
这里写图片描述

7.角色权限:动态数据,有客户自己设置,控制某角色是否有在菜单上操作三级菜单功能的权限

r_permission_role
+ id
+ permission_id
+ role_id
+ view_id
//这里我们给admin角色 添加 终端日志菜单 的 查询功能 (null, 1, 1, 31)
这里写图片描述


总结

总的来说控制菜单和功能权限就是两点:
1. 是否有显示菜单权限 r_menu_role,
2. 显示菜单后是否有操作菜单下三级功能的权限 r_persmission_role

角色权限管理系统(表结构设计和一级菜单显示)

角色权限管理系统之一级菜单显示,这个章节包括数据库表设计,smarty模板的使用。相信对php基础薄弱的人帮主很大。...
  • chenwill3
  • chenwill3
  • 2013年11月07日 15:15
  • 7133

角色权限管理系统(表结构设计和一级菜单显示)

角色权限管理系统之一级菜单显示,这个章节包括数据库表设计,smarty模板的使用。相信对php基础薄弱的人帮主很大。...
  • chenwill3
  • chenwill3
  • 2013年11月07日 15:15
  • 7133

从零开始写C# MVC框架之--- 根据用户角色权限获取菜单

当集成完上一篇的功能后,复制来复制去,直到完成菜单、角色、组织机构、用户维护功能,剩下的就是根据当前登录用户的所属角色获取菜单了。 1、菜单管理 2、用户管理 2.1、新增用户时...
  • zhuyu19911016520
  • zhuyu19911016520
  • 2016年09月18日 11:52
  • 2654

【转载】【权限控制】角色访问动态生成用户权限菜单树

【转载】【权限控制】角色访问动态生成用户权限菜单树             博客分类: 通用组件设计   转载: http://www.comprg.com.cn/pos...
  • chpswg
  • chpswg
  • 2013年12月12日 14:33
  • 29097

基于J2EE架构的项目开发团队中的角色与职责

【声明】 1、2内容来源:《J2EE Architects Handbook》中文翻译《J2EE系统架构师参考手册》[翻译Mellon] 1、角色   Technical architect...
  • wyxz126
  • wyxz126
  • 2013年04月09日 16:29
  • 1498

基于J2EE架构的项目开发团队中的角色与职责

【声明】 1、2内容来源:《J2EE Architects Handbook》中文翻译《J2EE系统架构师参考手册》[翻译Mellon] 1、角色   Technical a...
  • yechen2000
  • yechen2000
  • 2013年08月29日 22:22
  • 1063

J2EE+Flex的菜单及权限控制实践

本文讲述了J2EE+Flex的一些开发心得。作者一直是搞J2EE的,使用了blazeds,Flex通过RemoteObject调用Java的后台方法。这样的一个最大的好处就是不再需要struts这样之...
  • xingfeng0501
  • xingfeng0501
  • 2012年04月17日 00:14
  • 545

J2EE中的用户权限模型(RBAC)的设计

J2EE中的用户权限模型(RBAC)的设计 本文的读者对象 假定您是一个开发人员,并且有J2EE的开发经验,同事对关系型数据库有一些了解,你还必须了解一些关于servlet 的filter...
  • u013661953
  • u013661953
  • 2014年11月28日 09:24
  • 519

JEECG - 基于代码生成器的J2EE智能开发框架 续五:权限设计

当前分析: 目前权限模块的设计,模型很多也很成熟,各种精细控制也很完善,但同时因为权限设计的太精细化,也产生一个问题: 用户系统操作越来越复杂; 实际上用到这么精细设计的项目也并不多。 一般项...
  • zhangdaiscott
  • zhangdaiscott
  • 2013年01月07日 09:26
  • 4129

j2EE权限管理项目

  • 2017年01月15日 08:32
  • 3.33MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:j2EE项目中角色,菜单,权限的设计和应用
举报原因:
原因补充:

(最多只允许输入30个字)