相关表
序号 | 表性质 | 表名 | 字段 | 字段 | 字段 | 字段 | 字段 |
1 | 基表 | 用户表 | id | 帐号 | 密码 | ||
2 | 基表 | 角色表 | id | 角色名 | |||
3 | 基表 | 权限表 | id | 权限名 | 请求路径 | ||
4 | 关联表 | 用户角色表 | id | 用户id | 角色id | ||
5 | 关联表 | 角色权限表 | id | 角色id | 权限id | ||
步骤
1.然后从filter或inteceptor中取出请求路径和用户id
2.用请求路径在权限表和角色权限表中查出该路径有哪些角色可以访问
3.用用户id查到该用户属于哪个角色
4.用第3步的角色判断是否出现在第2步的角色列表中,出现则允许访问,否则拦截
但是每次请求被拦截时都查询数据库会非常影响效率,可以在服务启动时用监听器(或其他)查询一次,将表之间的映射全部取出放在context中,这样每次拦截时就不用查询数据库了.