shiro实现
本文于404天之前发表,文中内容可能已经过时。
shiro实现分为以下几个步骤
表设计
导包
代码实现
1.表设计
1
2
3
4
5
6
7
8表设计这块一共有六张表
模块表:功能模块
角色表:角色信息
用户表:用户信息
角色用户关联表:用户和角色的关联表
角色模块关联表:角色和模块的关联表
实际主要用的是用户表、角色表、模块表,由于用户表和角色表是多对多的关系,所以需要
一张之间表关联,角色表和模块表也是多对多的关系,所以也需要关联起来
2.导包
只需要导入如下包即可
3.代码实现
- 添加拦截器
- 设置shiro使用cglib代理(不设置使用的是jdk动态代理,配置这个在授权的时候,底层用到的是代理模式)
- 设置安全管理器,拦截那些请求
上面这些代码,里面包含了自定义的realm,和自定义的加密器,加密器在用户登录的时候,对用户的密码加密之后跟数据库里面的数据进行比对(用户在注册时,密码都是加密之后,存储到数据库里面的),自定义的realm,里面包含了两个方法,一个是用户认证的好方法,另外一个是用户授权的方法,主要业务逻辑我们自己实现
- 加密器
- Realm
Realm里面授权最后查询返回的list是,关联6张表查出来的用户拥有的模块
- 授权用法
#####也可以使用注解的方式 - 登录用法
如果文章对你有帮助,欢迎点击上方按钮打赏作者