目标

本教程的目标是和您一起,一步一步搭建一个springboot前后端分离的权限管理系统。

任何一个多角色的后台管理系统,都需要权限控制,本项目结合本人多年的实战开发经验, 基于springboot搭建了一套前后端分离的权限管理系统, 基于这个系统,试图浅显易懂的讲解权限管理是如何实现的,并且提供完整的代码,这些代码你可以用于来学习,也可以直接应用到项目中,提升项目的开发速度。

什么是权限控制

权限分为功能权限和数据权限,我们这主要讲功能权限,功能权限控制主要是指登录系统的用户对系统功能的可见性控制和可访问性控制。

可见性:

举个例子,系统有5个菜单

用户管理
角色管理
权限管理
资源管理
菜单管理

A用户登录进去可以看见2个菜单

用户管理
角色管理

B用户登录进去可以看见3个菜单

权限管理
资源管理
菜单管理

这就是权限的可见性。

可访问性:

比如A用户登录进去,知道了B用户的权限管理的 URL( /role ),在浏览器上输入 /role ,这个时候应该提示A用户没有权限访问,这就是可以访问性。

权限管理主要是围绕可见性和可访问性开展的

权限控制的技术原理

权限控制的基础技术就是URL拦截

用户登录进去,可以访问哪些URL,哪些URL需要拦截,这些是有一套关系表存储的,我们权限系统管理也就是基于这套表增删改查。

Java页面权限表设计_权限管理

权限控制的技术实现

1.基于权限控制的原理,自己编写过滤器, 实现自己的权限控制。
2.采用流行的权限框架,spring体系里面,SpringSecurity是一套非常流行的权限控制框架,功能丰富。

本项目就是基于 SpringSecurity 权限框架实现权限控制的,有几个好处

  1. SpringSecurity 具备成熟完善的权限控制方案,并且官方提供非常丰富的文档。
  2. 学习成本低,招聘成本也低,SpringSecurity 是开源成熟方案,大家都可以去官网学习了解使用,相比自研的话只有少数几个人知道,不利于新人入手学习和公司发展。