Shiro 是一个强大的 Java 安全框架,其主要作用是提供身份验证、授权、加密等安全相关的功能。Shiro 中的资源是指需要被保护的对象或数据,例如 Web 应用中的 URL、页面元素、服务接口等。Shiro 中提供了两种资源管理方式:基于三张表和基于五张表。
基于三张表的资源管理方式使用的是 Shiro 自带的默认数据模型,包含以下三张表:
1.用户表(user):存储用户信息,包括用户名和密码等。
2.角色表(role):存储角色信息,包括角色名称等。
3.权限表(permission):存储权限信息,包括权限字符串等。
这种方式的优点是简单易用,适合小型应用。但缺点是不支持细粒度的权限控制和动态权限控制。
基于五张表的资源管理方式使用的是自定义数据模型,包含以下五张表:
1.用户表(user):存储用户信息,包括用户名和密码等。
2.角色表(role):存储角色信息,包括角色名称等。
3.权限表(permission):存储权限信息,包括权限字符串等。
4.用户角色关系表(user_role):存储用户和角色之间的关系。
5.角色权限关系表(role_permission):存储角色和权限之间的关系。
这种方式的优点是支持细粒度的权限控制和动态权限控制,缺点是配置比较繁琐,适合大型应用。
总的来说,基于三张表的方式适合小型应用,而基于五张表的方式适合大型应用。