1.shiro是什么??
Shiro是Apache下的一个开源项目。shiro属于轻量级框架,相对于SpringSecurity简单的多,也没有SpringSecurity那么复杂。
官方架构图:
2.主要功能
shiro主要三大功能模块:
1.Subject:主体 ,一般指用户
2.SecurityManager:安全管理器 ,管理所有的Subject
3.Realm: 用于进行权限信息的验证,一般需要自己实现
3.细分功能
1.Authentication: 身份认证/登录(账号密码验证)
2.Authorization:授权,即角色或者权限验证。
3.Session Manager:会话管理,用户登录后的session相关管理。
4.Cryptography: 加密
5.Web Support: Web支持,集成Web环境
6.Caching: 缓存,用户信息,角色,权限等缓存到如redis中
4. pom.xml文件
引入相关的依赖
5.java实体类 Role 及创建的数据库表
java实体类 User 及创建的数据库表
java 实体类 Perms 及创建的数据库表
6. 用户登陆的Controller
7. 创建自定义Realm
8.创建shiroConfig配置类
9.创建Service
10.简单的登录页面
最后简洁的写上shiro的类图关系:
一开始,如果我们认证时,密码没有做加密处理的话,底层调用的是SimpleCredentialsMatcher的doCredentialsMatch方法,这个方法只是进行简单的equals 比较
但是,当我们对密码进行加密后,再进行密码认证的话,就得改变它默认的密码认证方法,调用SimpleCredentialsMatcher的子类HashedCredentialsMatcher的set方法