# SpringSecurityRBAC **Repository Path**: MaiJiantian/SpringSecurityRBAC ## Basic Information - **Project Name**: SpringSecurityRBAC - **Description**: SpringSecurityRBAC权限控制 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2019-06-28 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpringSecurityRBAC权限控制 ## 1、什么是SpringSecurityu? > SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IOC(控制反转)、DI(依赖注入)、AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。 ## 2、什么是RBAC权限模型? > 基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系可以建立起来以囊括更广泛的客观情况。 > > ![1561707354925](./images/1561707354925.png) > > 用户关联角色,角色关联权限,查询用户对应权限的时候,需要5张表联合查询 > > ```mysql > SELECT > permission.* > FROM > sys_user > USER INNER JOIN sys_user_role user_role ON USER.id = user_role.user_id > INNER JOIN sys_role_permission role_permission ON user_role.role_id = role_permission.role_id > INNER JOIN sys_permission permission ON role_permission.perm_id = permission.id > WHERE > USER.username = "admin"; > ``` > > 新增权限的时候,只需要在权限表新增权限,然后再去角色权限表增加角色对应权限即可。