`
LoveLZY
  • 浏览: 56217 次
  • 性别: Icon_minigender_1
博客专栏
Group-logo
从零编写RPC框架
浏览量:0
社区版块
存档分类
最新评论

java web权限管理

    博客分类:
  • web
阅读更多
   之前项目采用spring4+security3做的权限管理,采用通用的 用户-角色,角色-资源来管理权限。但是太依赖角色,同时是粗粒度的,决定采用二进制权限管理,自己构建
   1 依然采用组织概念,但是同时保留用户
   2 资源可以赋权给组织,也可以赋权给用户,权限区分读写
   3 用户可以在多个组织
   4 用户权限覆盖组织权限
   下面列出2进制权限算法演示
  
   //资源采用url表示
   把所有拥有独立权限的资源(url)写入数据文件例如mysql
   1、权限值的设定
  用二进制来表示权限值应该是按位来设置,每个位占一个,表示一种权限,如:

    00000001表示十进制1,
    00000010表示十进制2,
    00000100表示十进制4,
    00001000表示十进制8;

  依次类推,才能清晰正确的标识,多种权限的赋予则使用“或运算”,此时各位比较混乱,如00000011表示十进制3,此时它意味着拥有两种权限。

Long userrolevalue ;//用户的权限值,根据他属于的权限组,这个值会不同
Long oprolevalue   ;//一个操作的权限值,根据他属于的权限组,这个值会不同

2、权限的赋予(或运算)
userrolevalue = userrolevalue | oprolevalue
假设一个用户u1,他的初始权限值为0(00000000)。如果要指定他有经理的权限,经理的权限值为4(00000100),在第三个二进制位为1。
很显然,userrolevalue =  0 | 4 ,值为4,如果u1要同时具有文员、主管、经理的权限呢,
userrolevalue = 0 | 1   00000000 | 00000001  = 00000001
userrolevalue = 1 | 2   00000001 | 00000010  = 00000011
userrolevalue = 3 | 4   00000011 | 00000100  = 00000111
这样,第1、2、3位都是1了,用 “或”的好处就是只改变指定位的值,如果用户已经有了该权限,直接简单的用加法来做会出错,而用"或"再赋予一次,也不会出错,如下:
userrolevalue = 7 | 4   00000111 | 00000100  = 00000111

3、权限的除去(求补、与运算)
userrolevalue = userrolevalue & (~oprolevalue)
假设一个用户u1,他的初始权限值为7(00000111),说明他能做文员、主管、经理权限组所能作的所有操作。如果不想让他有主管权限组能作的操作呢,那么,就要把他的权限值变为00000101,而主管权限组的权限值是00000010,显然简单的用减法,肯定也是不行的,但是先对00000010作补运算,可以得到11111101,再同00000111作与运算,就得到了00000101,这样就只对第二位作了改变,不会影响到其它位,我们的目的也就达到了。

对于一个操作,哪些权限组能操作它,也可以用与运算来做,不让某些权限组有些操作的权限,也可以先求补,再作与运算来解决。

4、权限的验证(与运算)
(userrolevalue & oprolevalue) != 0表示拥有oprolevalue所表示权限

 例如:现有一个用户User的权限为6(00000110),通过&(与)运算,使用公式 "(User的权限 & 权限值) != 0" 即可判断拥有某个权限值表示的权限----6 & 2 == 2 (00000110 & 00000010 == 00000010),表示User拥有主管权限;6 & 4 !=0 (00000110 & 00000100 == 00000100) ,表示User拥有经理权限;6 & 1 == 0(00000110 & 00000001 == 00000000),表示User无文员权限;  





分享到:
评论

相关推荐

    java web权限管理系统

    系统使用spring+springmvc+hibernate+easyui框架搭建,mysql数据库,包含资源管理、人员管理、角色管理、部门管理等,可以直接使用。

    java 后台权限管理系统

    是一个简单高效的后台权限管理系统。项目基础框架采用全新的Java Web开发框架 —— Spring Boot2.0.4,消除了繁杂的XML配置,使得二次开发更为简单;数据访问层采用Mybatis,同时引入了通用Mapper和PageHelper插件,...

    Javaweb基于角色控制的权限管理系统

    非常完整的Javaweb实践项目,可以用来作为期末课程设计,或者毕业设计,数据库脚本文件都具备,三个数据库的都含有

    基于Java web的公司文件管理任务系统(源码+数据库).zip

    伴随着信息行业的蓬勃发展和人们办公自动化意识的增强,公司文档管理部门的的工作也...系统包括:权限管理、用户与部门管理、数据库、文件管理、检索模块。 一级用户:显示最新文档、文档预览、文档打印。 二级用

    java web 开发技术大全光盘文件(part02)

    Java Web开发技术大全光盘文件,由于上传权限只有20M所以打成了5个rar包(java web 开发技术大全光盘文件(part01)、java web 开发技术大全光盘文件(part02)、java web 开发技术大全光盘文件(part03)、java web 开发...

    java web 开发技术大全光盘文件(part04)

    Java Web开发技术大全光盘文件,由于上传权限只有20M所以打成了5个rar包(java web 开发技术大全光盘文件(part01)、java web 开发技术大全光盘文件(part02)、java web 开发技术大全光盘文件(part03)、java web 开发...

    Java Web 开发技术大全光盘part01

    Java Web开发技术大全光盘文件,由于上传权限只有25M所以打成了5个rar包(Java Web (G).part1.rar、Java Web (G).part2.rar、Java Web (G).part3.rar、Java Web (G).part4.rar、Java Web (G).part5.rar)。下载全部包...

    java web权限访问过滤器

    实现对网页的访问控制权限,使用过滤器的方法实现的权限访问

    基于Java web的超市管理系统(源码+数据库+报告).zip

    ·管理员管理功能,操作者包括超级管理员和普通管理员,超级管理员可对任意管理员的信息进行管理,而普通管理员只有部分权限。(注:考虑到日后系统扩展的需要及系统本身的安全性,必须做到账号的专人专用,以明晰...

    java web 系统权限设计 源码

    权限系统源码【含文档】,很具有参考价值,推荐给大家。

    基于Java web的客户信息管理系统(源码+数据库).zip

    (1)系统需要提供权限管理,对于不同的角色能够赋予不同的权限。 (2)为了更好的和客户交流,还需要提供一个客户联系人功能,用来管理客户的联系人信息。 (3)为了更好的统计公司的销售情况,还需要提供一个销售...

    java web实现用户权限管理

    主要介绍了java web实现用户权限管理,设计并实现一套简单的权限管理功能,感兴趣的小伙伴们可以参考一下

    java web进销存系统.zip

    该项目的架构搭建使用的是maven,后台是使用的是spring boot框架,数据库的CRUD使用的是注解的方式,权限管理使用的是shiro框架,前端使用的框架是jquery,bootstrap,highcharts4插件,主要有以下功能:用户管理、...

    学生信息管理系统 (Java Web版).zip

    本系统利用Java Web技术实现了学生信息管理系统,具有简单的学生信息管理功能。 实现了以下功能模块: 院系信息管理模块,学生信息管理模块,课程信息管理模块,成绩管理模块 并能根据登入用户的权限自动展示相关...

    基于SSH2架构的Java Web通用权限管理的设计.pdf

    权限管理是java Web应用程序开发中的重要一部分,是程序安全运行的基础。本文设计和实现了一个适用于SSH2架构的通用权限管理设计框架,设计中对用户权限的控制分成三类,结合了基于角色的权限控制模型的优点,通过角色将...

    Java开发企业级权限管理系统

    Java开发企业级权限管理系统

    基于Java Web的图书销售管理系统(源代码+课程设计报告)

    基于Java Web的图书销售管理系统 项目描述 本系统是基于jsp的网上图书销售,有比较符合初学者的简单而又不单一的界面,也有繁琐而又不过于抽象的后台数据处理。包含分类的登录用户(用户与管理员权限与界面不一)...

    java web项目,在线水果商城

    java web课程设计,在线水果商城。如果选择用户登陆,则进入商品购买系统,首页为各个商品并且在首页可以进行用户登陆和新用户的注册,用户登陆或者注册之后,进行商品的购买,点击商品可以进入一个商品详情界面,...

    Java Web通用用户权限管理框架设计与实现.pdf

    在MyEclipse 10开发环境下,运用RBAC模型设计并实现一款基于java Web的通用用户权限管理框架,主要实现用户管理功能,角色管理功能和资源管理功能。该系统采用java EE自身的服务,提高系统的可重用性,在用户和资源间引入...

    java web 开发技术大全光盘文件(part03)

    Java Web开发技术大全光盘文件,由于上传权限只有20M所以打成了5个rar包(java web 开发技术大全光盘文件(part01)、java web 开发技术大全光盘文件(part02)、java web 开发技术大全光盘文件(part03)、java web 开发...

Global site tag (gtag.js) - Google Analytics