最近一直在做CMS系统,发现一些内容其实都是重复出现的,例如权限管理模块。权限管理模块就是为了管理用户是否有权利访问某个权限,如果不能则拒绝访问。其实Java中已经有很成熟的权限管理框架,例如 Shiro,Spring Security等,也推荐大家使用。但是一些设计上的东西还是要重复再造过轮子才能发现里面的精髓,所以这份代码,供不太明白的同学也参考参考。
下面我将详细介绍一下这个简单的权限管理模块,以便大家可以拿去直接使用。
数据表
b384b36c-ccec-46bd-9cdb-c7590f918b2f.png
主要三张表
t_user:用户表,访问系统的对象
t_permission:权限表,每条记录就是一个权限,也就是一个 url 地址
t_group:用户组表,一个组可以包含多个权限,用户如果在这个组中,则享有所有权限
简单例子
来个简单的例子,例如一个CMS系统中,有一些权限:添加文章( /admin/article/add),查看文章( /admin/article/{id}),删除文章( /admin/delete/{id}),修改文章( /admin/article/update/{id}),每个权限其实对应一个controller的 requet 地址。这些内容存放在 t_permission 中。
然后系统中有一些用户都放在 t_user中,然后我可以为