Shiro讲解(基于Springboot搭建)

概念

用户—角色—权限,限制不同级别的用户登录可以有不同的权限,成熟的用户安全框架

基于SpringBoot讲解

表数据

用户表:MD5二次加密后的用户信息存储

在这里插入图片描述

角色表:存储相关角色以及详情信息

在这里插入图片描述

用户角色对应表

在这里插入图片描述

权限表:维护权限详情信息,本项目url指向访问路径

在这里插入图片描述

角色权限对应表

在这里插入图片描述

导入相关jar

<!-- shiro -->

<dependency>

   <groupId>org.apache.shiro</groupId>

   <artifactId>shiro-spring</artifactId>

   <version>1.3.2</version>

</dependency>
 

<!-- shiro-web -->

<dependency>

    <groupId>org.apache.shiro</groupId>

    <artifactId>shiro-web</artifactId>

    <version>1.3.2</version>

</dependency>  

配置写入

securityManager
概念
  1. 这是 Shiro 架构的核心,是 Shiro 内部所有原件的保护伞。
  2. 开发人员将大部分精力放在了 Subject 认证主体上,与 Subject 交互背后的安全操作,则由 SecurityManager 来完成
讲解

引入realm

关于realm :它是连接 Shiro 和 具体应用的桥梁,登录的数据存储以及校验,在realm中过度。

在这里插入图片描述

realm里面包含了凭证匹配器(把凭证校验交给了shiro)

在这里插入图片描述

doGetAuthenticationInfo() 方法:用来验证当前登录的用户,获取认证信息

在这里插入图片描述

doGetAuthorizationInfo() 方法:为当前登录成功的用户授予权限和分配角色

在这里插入图片描述

此案例是 MD5,散列2次加密

在这里插入图片描述

shirFilter
概念
  1. 注入上述:SecurityManager
  2. 处理拦截资源文件问题
讲解

注入SecurityManager

在这里插入图片描述

配置以下的拦截

1、默认登录的 URL:身份认证失败会访问该 URL。

2、认证成功之后要跳转的 URL。

3、权限认证失败后要跳转的 URL。

在这里插入图片描述

4、需要拦截或者放行的 URL:这些都放在一个 Map 中。

在这里插入图片描述

在这里插入图片描述

上述案例中,只用到了anon、logout权限配置。还有一个是url自定义配置,本案例利用查询permission表中的配置,来进行拦截

在这里插入图片描述

这里不做赘述,其实就是判断是否有此权限来进行访问限制

登录测试

在进行登录的时候,会有realm的doGetAuthenticationInfo方法进行登录校验(这里可以在realm中打断点,看是怎样的流程)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值