![8b28b6867ae29f275723dc4a4397ac44.png](https://i-blog.csdnimg.cn/blog_migrate/68a0fc9a915ba8daad2416645505fc65.png)
实现功能
通过shiro框架实现注册、登陆功能 进而简单的分析下shiro框架中数据流转过程 达到熟练使用shiro框架的目标
代码目录
![fa7ec0738d1ecedb817a55211057de7f.png](https://i-blog.csdnimg.cn/blog_migrate/63a6eac2ecfc1c64fee91e55d81af98d.png)
标记蓝色的3个类是shiro相关的 咱们现在一起分析下这3个类中的内容
代码刨析
POM文件引入shiro jar包
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-all</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-web</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-ehcache</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.2.2</version>
</dependency>
ShiroConfig类
![000a0b93cfc6f96c1eae60b906e2c746.png](https://i-blog.csdnimg.cn/blog_migrate/a0eba7104cdf191a95d894f36c8d7c67.png)
配置shiro过滤器
直接调用doLogout接口 就会调用shiro的logout登出功能
![bba7dcd858a957427b0110651960381b.png](https://i-blog.csdnimg.cn/blog_migrate/fa9ac7a6f240f2b1f4e4773d0302d102.png)
获取认证消息
ShiroRealm类
![d3be6aeca2ead56d4134c84437dc1255.png](https://i-blog.csdnimg.cn/blog_migrate/144eaa39c06e3882a1691fac4a4aff41.png)
MyController类
![3f6dea6aafb863588f6f3d20fb46d797.png](https://i-blog.csdnimg.cn/blog_migrate/e9d0f0fe8c690a7625d58ace6d1b92ec.png)
用户注册
![b4ab6967f6907ea2a3651c394f014bc1.png](https://i-blog.csdnimg.cn/blog_migrate/2ed41b1e6c21d41156c1ec150c857159.png)
代码流程图
(注册过程)根据明文密码计算md5值 入库保存用户名、md5密码
(登陆过程)根据用户名和明文密码 生成token
将token提交到shiro框架进行验证是否合法
先认证用户名是否存在
用户名存在的话 则shiro框架会根据明文密码和密码计算规则来进行md5值 然后和数据库中的md5比较
一致则登陆成功,不一致则登陆失败
源码资源
https://gitee.com/pingfanrenbiji/ShiroDemo.git