简明RBAC(Role-Based Access Control)with shiro security framework

RBAC(Role-Based Access Control)是一种权限管理机制,常用于控制用户对资源的访问。例如在GitLab中,不同角色如实习生和核心成员拥有不同权限。在实际应用中,通过设计用户、角色和权限表来实现这一机制。用户-角色是一对多关系,角色-权限是多对多关系。本文通过Shiro安全框架展示了如何实现RBAC,管理员角色的用户可以访问特定页面,而实习生则受到访问限制。
摘要由CSDN通过智能技术生成

RBAC是什么

RBAC(Role-Based Access Control),基于角色的访问控制。
在业务处理中,经常会涉及多用户组的权限大小问题。举个例子的话,现在为多数公司所使用的gitlab仓库管理系统,其优于github的一大特点就是对团队内的各角色组进行权限管理。比如新入职的实习生,由于公司信息保密以及项目安全问题,是不能让其看到公司项目的全部代码的。而项目组的核心成员,由于项目中类与类相关度高,需要每个文件都有访问权限。

于是
基于RBAC思想进行角色权限设计 实习生所能访问到的资源被限制,而项目核心成员所能访问到的资源则相对来说更多。

实战(RBAC with shiro security framework)

此处使用一位大神的demo进行辅助说明
作者的相关说明

首先明白其实体之间的关系

一个用户只能属于一个角色(role/用户组),一个角色可以包含多个用户。(用户-角色表一对多)
一个角色可以访问多个权限,而一个权限可以被多个角色所访问。(用户-权限表多对多)
一个权限对应能够访问对应的API或url资源。

于是设计表
在这里插入图片描述
用户表,角色表,权限表,用户-角色关联表,角色-权限关联表

类的设计
(@table用于实体类名与数据库表名不同的情况进行注解)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
shiro权限控制以及加密
在这里插入图片描述
实现的效果
用户权限(小)

在这里插入图片描述
在这里插入图片描述
而有管理员权限(用户组)的用户,访问delete页面时,则会正常进入
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值