java通过session判断该用户是否具有该功能的操作权限_RBAC——权限

什么是 RBAC

RBAC(Role-BasedAccessControl )基于角色的访问控制。

RBAC 认为权限的过程可以抽象概括为:

判断【Who 是否可以对 What 进行 How 的访问操作(Operator)】

Who:权限的拥用者或主体

What:权限针对的对象或资源

How:具体的权限

Operator:操作。表明对 What 的 How 操作。也就是 Privilege+Resource

Role:角色,一定数量的权限的集合。 权限分配的单位与载体,目的是隔离User与Privilege 的逻辑关系

其他相关模型:RBAC96 模型中RBAC0、RBAC1、RBAC2、RBAC3

RBAC需求

1)实现用户登录功能

2)使用 RBAC0 模型管理系统权限

3)对系统的菜单以及菜单中的链接进行管理。

4)用户登录后首页根据用户角色显示该角色所对应的菜单

5)禁止用户越级访问

技术选择

1)框架:SpringMVC+Spring+Mybatis

2)数据库:Mysql

1.建表

首先说明一下各个表需要存储的信息以及之间的关系:

用户表(用户名、密码、角色表id)、角色表(角色id、角色名)

菜单表(菜单id、菜单名、菜单地址、父目录id)

功能表(功能id、功能名称、功能地址、菜单id)

菜单角色中间表(角色id、菜单id)

其中:多个用户对应一个角色,菜单和角色多对多,功能和菜单是多对一关系

用户表

CREATETABLE`users`( `username`varchar(50)NOTNULL, `userpwd`varchar(50)DEFAULTNULL, `role_id`int(11)DEFAULTNULL, 
PRIMARYKEY(`username`), KEY`users_fk`(`role_id`), CONSTRAINT`users_fk`FOREIGN KEY(`role_id`)REFERENCES`roles`(`roleid`) )ENGINE=InnoDBDEFAULTCHARSET=utf8;

角色表

CREATETABLE`roles`( `roleid`int(11)NOTNULLAUTO_INCREMENT, `rolename`varchar(50)DEFAULTNULL, PRIMARYKEY(`roleid`) )ENGINE=InnoDBDEFAULTCHARSET=utf8;

菜单表

CREATETABLE`menus`( `menuid`int(11)NOTNULLAUTO_INCREMENT,
`menuname`varchar(50)DEFAULTNULL, `menuurl`varchar(50)DEFAULTNULL, `fatherid`int(11)DEFAULTNULL, 
PRIMARYKEY(`menuid`) )ENGINE=InnoDBDEFAULTCHARSET=utf8;<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值