logo头像

学习java,共同进步

shiro实现

本文于404天之前发表,文中内容可能已经过时。

shiro实现分为以下几个步骤

表设计
导包
代码实现

1.表设计

表设计

1
2
3
4
5
6
7
8
表设计这块一共有六张表
模块表:功能模块
角色表:角色信息
用户表:用户信息
角色用户关联表:用户和角色的关联表
角色模块关联表:角色和模块的关联表
实际主要用的是用户表、角色表、模块表,由于用户表和角色表是多对多的关系,所以需要
一张之间表关联,角色表和模块表也是多对多的关系,所以也需要关联起来

2.导包

只需要导入如下包即可
导包

3.代码实现

  • 添加拦截器
    拦截器
  • 设置shiro使用cglib代理(不设置使用的是jdk动态代理,配置这个在授权的时候,底层用到的是代理模式)
    cglib
  • 设置安全管理器,拦截那些请求
    安全管理器
    上面这些代码,里面包含了自定义的realm,和自定义的加密器,加密器在用户登录的时候,对用户的密码加密之后跟数据库里面的数据进行比对(用户在注册时,密码都是加密之后,存储到数据库里面的),自定义的realm,里面包含了两个方法,一个是用户认证的好方法,另外一个是用户授权的方法,主要业务逻辑我们自己实现
    
  • 加密器
    加密器
  • Realm
    Realm
    Realm
    Realm里面授权最后查询返回的list是,关联6张表查出来的用户拥有的模块
    
  • 授权用法
    用法
    用法
    #####也可以使用注解的方式
    用法
  • 登录用法
    用法
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者