使用Shiro结合springboot完成登录权限认证等操作(2)

概要

提示:这里可以添加技术概要

本文书接上文shiro结合springboot完成登录权限验证的部分,有兴趣的宝宝们可以点进主页看上次的源码及其运行结果喔(这一次主要是针对shiro中经常出现的类名等进行分析和解释,后面会陆续进行源码分析,前后端联调等尽情期待)

前情回顾

提示:这里可以添加技术整体架构
在上一次我们使用RBAC模型设计登陆权限模型后,我们可以从登录的结果中看到,返回结果中成功返回了用户的角色。
在这里插入图片描述
同时因为数据库表中shiro_user,shiro_role,shiro_permission有着关联的关系,我们可以通过当前登录的用户角色,根据用户的角色来获取用户所对应的权限。

Shiro主要组成

大致分类

Realm
可以有一个或多个Realm,realm可以简单的来说就是储存了当前你需要的用户权限等相关的数据,比如角色,权限,用户等相关的信息,我们通常在realm中调用数据库来获取相关数据。
SecurityManager:安全管理器
顾名思义,SecurityManager是管理着shiro的相关组件相互,实现shiro登陆鉴权等核心功能的安全管理器,shiro中所有和安全相关的一些操作都会在安全管理器中进行操作。
Subject
Subject是代码之间进行交互的对象,Subject对象进行交互的所有操作都会委托给SecurityManager进行操作。个人看来,可以把subject简单的理解成实体类,manager是业务层代码。subejct可以泛泛是当前登陆的用户(登录名,密码,权限,角色等相关信息),而SecurityManager才是对subject进行一系列操作的“罪魁祸首”

在这里插入图片描述

SecurityManager:安全管理器下组件

Authenticator(认证组件)
Authorizer(授权组件)
Session Manager(session控制器)
SessionDAO(session)
CacheManager(缓存管理器)
Cryptography(密码加密等操作的组件)
提示:这里可以添加技术名词解释

代码分析

在这里插入图片描述
在上述图片中我们可以看到,我们自定义配置了我们自己系统的realm,继承了AuthorizingRealm。我们可以点进AuthorizingRealm的的源码中一探究竟。
在这里插入图片描述
上图我们可以看到,AuthorizingRealm实现了授权组件
在这里插入图片描述
授权组件接口定义了一系列关于授权的方法,在前面的示例中我们可以通过一系列的方法来自定义授权和认证等操作

在这里插入图片描述
在这里插入图片描述

SecurityManager等

在这里插入图片描述
可以根据自身要求写一个config类来实现对SecurityManager安全管理器的配置,例如权限管理和过滤器链的配置等等。

  • 34
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Shiro是一个强大的Java安全框架,可以帮助开发者轻松地实现身份认证、授权管理和会话管理等安全功能。而Spring Boot是一个用于简化Spring应用开发的框架,它提供了一些开箱即用的特性,使得开发者可以快速搭建一个基于Spring的应用。 将ShiroSpring Boot结合使用,可以让我们更方便地使用Shiro的各种安全特性。Shiro提供了一些与Spring集成的组件,例如我们可以通过使用Shiro的注解来实现权限控制,同时也可以利用Spring的依赖注入特性来处理Shiro的一些配置。 在Spring Boot使用Shiro主要有以下步骤:首先,我们需要在Spring Boot的配置文件中配置Shiro的相关信息,例如Realm(用于认证和授权的数据源)、filter(用于拦截和处理请求)等。接着,我们需要创建一个自定义的Realm来实现具体的认证和授权逻辑。然后,我们可以使用Shiro提供的注解在Controller层进行权限控制,例如@RequiresAuthentication用于要求用户进行身份认证,@RequiresRoles用于要求用户具有某个角色等等。最后,在前端页面或者API中,我们可以通过Shiro提供的标签或者API来展示或者处理与用户权限相关的信息。 总结起来,ShiroSpring Boot结合为我们提供了一种便捷的方式来实现应用的安全功能。我们可以通过Shiro来管理用户的身份认证权限控制,通过Spring Boot来简化应用的开发过程。这样,我们可以更加专注于业务逻辑的实现,同时也提高了应用的安全性和可维护性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值