shiro结合redis进行安全框架的使用

shiro是用来进行登录验证,权限校验的安全框架
1.参考视频:传送门
2.准备条件:eclipse编译器
3.redis数据库,MYSQL数据库
4.md文件打开工具:传送门
5.参考demo:传送门(见本人资源),先在数据库里创建数据,条填充表,注册页面可以注册用户。

Shiro笔记整理
一、基本概念
Shiro是一个权限管理框架,包括用户身份认证授权两部分
二、基本实现逻辑
其基本的逻辑构图如下:
在这里插入图片描述
核心是安全管理器securityManager,realm中主要有认证和授权两大模块,其基本的思路如下:
一般我们会把shiro结合拦截器来做,shiro有封装好的拦截器,将拦截器,安全管理器,realm注入到sprig容器后,同时也会存储到安全管理工具SecurityUtils中,
当登录的时候,我们会执行工具类中的subject中的login方法,这样就会到realm中的认证方法中,在认证token中,取出用户名,结合数据库,验证用户名后,并给shiro返回密码,盐值等由shiro框架自行完成密码的校验,如果通过就会跳转到主页面,不通过就会报错UnknownAccountException和IncorrectCredentialsException,返回到登录页面。
关于盐值的比对问题,注册的时候会存到数据库里面随机盐,然后登录验证的时候,会将随机盐一起发回给shiro框架,结合散列来验证。
关于授权的问题,我们用·的是shiro标签,当然也可以使用注解和代码的形式,
注解:@RequiresRoles、@RequiresPermissions代码的话还是用的是SecurityUtils里面subject方法的hasRole等方法,这三种情况都会直接响应realm里面的授权方法,参数中取出主身份信息结合数据库完成授权,并将相应的权限信息返回给shiro框架,然后再反应在相应的标签,注解,代码上
图片验证码的话会存在session中,通过前端的获取和后端的比对完成验证。
当然这是第一次认证和授权,我们使用的是redis存储,在第一次完成之后,就会把相应的信息存到redis中,就会到realm中配置的RedisCacheManager进行数据的读取,redis存储的话会涉及到很多序列化的操作,因为redis是内存数据库,所以序列化的目的是将数据转化为二进制方便内存和磁盘的交互。 Redis常用的命令:keys *查看数据库中的键值对,flushAll清除所有的键值对。

三、关于数据库表的设计
数据库一共有三个基本表,两个关系表,基本表分别是用户、角色、权限表,关系表分别是:用户对角色表,角色对权限表,不同的用户有不同的角色,不同的角色会拥有不同的权限,当一个用户进入到系统中时,会先进入用户表进行认证,认证之后就会查询相关的角色和权限,来完成认证。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Spring Boot是一种用于快速开发Java应用程序的框架,它提供了许多便捷的功能和特性,如自动配置、简化的部署等。MyBatis Plus是一个MyBatis的增强工具,可以更便捷地操作数据库。Shiro是一个强大的Java安全框架,可以提供身份认证、授权、会话管理等安全相关的功能。Redis是一个高性能的键值对存储系统,常用于缓存、分布式锁等场景。Template是Spring框架中用于渲染视图的模板引擎。 综上所述,Spring Boot与MyBatis Plus、ShiroRedis Template一起使用可以构建一个功能强大、高效、安全的应用程序。Spring Boot提供了便捷的开发环境和配置,使得整个项目的搭建和部署更加简单。MyBatis Plus提供了简洁的API,可以更方便地操作数据库,减少了开发人员的工作量。Shiro可以提供安全相关的功能,保护应用程序的数据和资源安全Redis作为缓存可以提高应用程序的访问速度,使用分布式锁等功能可以保证数据一致性和并发控制。Template可以方便地渲染视图,使得前端页面开发更加简单。 总之,Spring Boot与MyBatis Plus、ShiroRedis Template的集成可以帮助开发人员快速构建功能完善、高效、安全的应用程序。它们各自的特性和功能相互配合,提供了一种快速开发的解决方案,为开发人员提供了更好的开发体验。 ### 回答2: Spring Boot是一个用于简化Spring应用程序开发的框架,它提供了自动配置和快速开发的特性。MyBatis Plus是基于MyBatis的增强工具,它简化了与数据库的交互,提供了很多便捷的方法和功能。Shiro是一个用于身份认证和授权的安全框架,它可以帮助我们实现用户身份认证、权限控制和会话管理的功能。Redis是一个开源的内存数据库,它提供了对数据的高速缓存和持久化存储的功能。Redis Template是Spring对Redis进行操作的一个封装工具,它提供了一系列的方法用于对Redis进行增删改查的操作。 使用Spring Boot可以简化项目的搭建和配置,通过自动配置可以省去很多繁琐的步骤。使用MyBatis Plus可以不用编写繁琐的SQL语句,只需定义实体类和Mapper接口即可完成数据库的操作。使用Shiro可以轻松实现用户的身份认证和权限控制,保障系统的安全性。使用Redis可以提高系统的性能,通过缓存机制减少数据库的访问次数。 结合起来使用,可以构建一个高效、安全和可靠的Web应用程序。Spring Boot提供了集成MyBatis Plus和Shiro的插件,可以方便地使用这两个框架Redis Template可以与Spring Boot的缓存框架一起使用,实现高速缓存。通过这些技术的使用,我们可以快速开发出功能完善的Web应用,提高开发效率和系统性能。 ### 回答3: SpringBoot是Java中一个开源的应用程序框架,它可以简化开发过程,提供了许多开箱即用的功能和库,使得开发者能够更快速地构建应用程序。 MyBatisPlus是一个基于MyBatis的增强工具,它提供了更方便、更强大的操作数据库的功能,大大简化了数据库操作的代码。 ShiroJava中一个功能强大且易于使用安全框架,它提供了身份验证、授权、加密、会话管理等功能,可以帮助开发者实现应用程序的安全控制。 Redis是一个开源的内存数据库,它可以用作缓存、消息队列等,具有高性能、持久化、分布式等特点。 Template是Spring框架中的一个模板引擎,它支持HTML、XML、JSON等多种模板语言,用于将动态数据渲染到模板中,生成最终的静态页面或其他格式的文件。 综合以上技术,可以构建一个高效、安全、可靠的Web应用。使用SpringBoot可以简化项目的搭建和配置,MyBatisPlus可以方便地操作数据库,Shiro可以保护应用程序的安全Redis可以提高系统的性能和可扩展性,Template可以方便地生成动态页面。 例如,我们可以使用SpringBoot搭建一个基于MyBatisPlus的后台管理系统,使用Shiro完成用户的身份验证和权限控制,使用Redis作为缓存存储用户的会话信息,使用Template将动态数据渲染到页面中。这样的系统具有良好的性能和安全性,提供了友好的用户界面和丰富的功能。 总之,SpringBoot、MyBatisPlus、ShiroRedis和Template等技术可以共同协作,帮助我们构建出高质量、高效率的应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PH = 7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值