RABC简单来说就是角色来进行的权限控制,首先基本的RBAC模型要分为用户、角色和权限,关系如下:
因为角色和用户是多对多关系,所以用户和角色通过关联表关联,角色和权限也是多对多的关系,所以角色和权限也用关联表关联。这样就形成了一个基础模型:用户拥有角色,角色拥有权限。
整体的运行流程大致分为以下几步,第一步用户登陆账号,后台查询角色情况。第二步用户选择账号角色登陆,后台根据权限列表回显用户的权限并生成菜单。第三步,当用户访问后台方法时,先根据权限字符串对其是否拥有这个权限进行判断,如果有则继续执行方法,没有则不执行方法。
值得注意的是权限字符串的比较写在AOP中,这样可以在方法执行前对权限进行判断。