1、为什么要使用shiro?
项目中的密码是否可以明文存储
是否任意访客,无论是否登录都可以访问任何功能
项目中的各种功能操作,是否是所有用户都可以随意使用
2、shiro主要做四件事:
1、authentication:身份认证(登录)
2、authorization:授权,知道你身份后,根据身份找到你的权限
3、cryptography:密码学,加密支撑
4、session management:会话管理,登录后把你的登录信息、登录状态存入
3、shiro三个组件:
Subject:个体。当我们调用某个功能时,我们先找到Subject,由Subject某些个方法,完成最终的功能调用
SecurityManager:Subject底层调用SecurityManager。SecurityManager等价于SpringMVC中的DispatcherServlet。核心地位,除了加密之外的所有行为都由它调度
Realms:区域。注入Service查数据。等价于SpringMVC中的DAO
4、RBAC模型(Role Base Access Controll 基于角色的访问控制)
模型中3个主体:用户、角色、权限
每个角色可以有多个权限,每个权限可以分配给多个角色
每个用户可以有多个角色,每个角色可以分配给多个用户
两个多对多
角色把用户和权限的关系解耦了
基础表:5张(用户表、角色表、用户-角色关联表、权限表、角色-权限关联表)
更精细:用户组表、角色组表
5、权限访问控制,做的事是:
身份校验:判断是否为合法用户
权限校验:用户要做某件事或使用某些资源,必须拥有某角色,或必须拥有某权限