RBAC权限管理设置
RBAC(Role-Based Access Control,基于角色的访问控制)是一种常用的访问控制机制,用于管理系统中的用户权限。RBAC通过将用户分配给角色,并将权限授予角色,从而控制用户对资源的访问。
基于RBAC实现的权限管理通常需要涉及以下几张表:
- 用户表(user):记录系统中的所有用户,包括用户ID、用户名、密码等信息。
- 角色表(role):记录系统中的所有角色,包括角色ID、角色名等信息。
- 用户角色关联表(user_role):记录用户和角色之间的关联关系,包括用户ID、角色ID等信息
- 权限表(permission):记录系统中的所有权限,包括权限ID、权限名、权限类型等信息。
- 角色权限关联表(role_permission):记录角色和权限之间的关联关系,包括角色ID、权限ID等信息。
Spring Securiy介绍
Spring Security是一个用于在Java应用程序中实现身份验证和访问控制的强大框架。它可以轻松地集成到任何基于Spring的应用程序中,提供了一套丰富的功能来保护应用程序的安全性。
基本原理可以简述为:
从客户端发送一个请求之后,经过第一个Filter拦截器,然后被DelegatingFilterProxy过滤器链拦截,经过它内部有自定义的15个拦截器链以及自己写的一个名叫JWTTokenFilter之后,将Roles放到SecurityContest上下文中,然后到达Servle,然后执行Controler,Controler中有一个HandlerMothed方法,这个方法上面还有个注解为@PreAuthorize进行授权检查