为什么要做权限?
对于我们系统的一些功能只有特定角色用户才能访问。要做权限判断。
权限模块是相对独立的一个系统模块,跟业务功能耦合度不高,是一个比较通用的模块。
权限分类:登录权限(系统的最基本权限),菜单权限,功能权限(对后台某些接口的权限)。
RBAC:基于角色的访问控制。
基本思想:对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。这样做的好处是,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多,这样将简化用户的权限管理,减少系统的开销。
优点:简化权限和用户之间的关系,易扩展和维护。
角色表存在的必要性:减少数据量操作
权限表存在的必要性:对系统的功能接口做精细化控制
菜单表存在的必要性:做动态菜单
权限实现的原理有很多,例如shiro, Spring Security等。也可以通过自定义拦截器实现,其中核心包括,当前的资源请求者是谁(当前的登录用户),授权(用户有哪些权限),验证(当前访问的资源是否有权访问)。