当前位置: 首页 > article >正文

SpringBoot(6)-Shiro

目录

一、是什么

二、准备工作

 2.1 环境搭建

2.2 自定义Realm配置类

2.3 自定义shiro配置类

 三、实践

3.1 请求拦截

3.2  用户认证

3.3 用户授权

3.4 shiro和thymeleaf整合


一、是什么

是java的一个安全框架

核心三大对象:

1、Subject【用户】

2、SecurityManager【安全管理器】

3、Realm【连接数据】

二、准备工作

 2.1 环境搭建

pom.xml导入依赖:thymeleaf、shiro整合spring的包

        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-spring</artifactId>
            <version>1.4.0</version>
        </dependency>

2.2 自定义Realm配置类

继承AuthorizingRealm,并重写里面的认证和授权方法

2.3 自定义shiro配置类

创建三大核心对象

  • Subject:ShiroFilterFactoryBean
  • SecurityManager:DefaultWebSecurityManager
  • Realm:上述自定义的Realm配置类

 三、实践

3.1 请求拦截

实际应用中,若我们没有登陆去访问需要认证的资源,应该跳转到登录页面

 

3.2  用户认证

调用业务层去数据库中查找是否存在用户名,若查出user为null,则抛出异常;(注意注入Service层)

密码的判定shiro内部帮我们做

1、realm重写认证方法(判断用户信息)

 

 2、controller层

3.3 用户授权

1、权限设置

2、realm重写授权方法(判断用户权限)

3.4 shiro和thymeleaf整合

实现功能:用户只能看见其对应权限的功能

 1、导入shiro和thyme整合的包

        <dependency>
            <groupId>com.github.theborakompanioni</groupId>
            <artifactId>thymeleaf-extras-shiro</artifactId>
            <version>2.0.0</version>
        </dependency>

2、在ShiroConfig中,注入ShiroDialect

这样就可以在视图模版中使用shiro标签来进行权限控制、用户认证等操作

3、添加命名空间

xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.thymeleaf.org/thymeleaf-extras-shiro"

4、前端


http://www.kler.cn/a/400573.html

相关文章:

  • A037-基于Spring Boot的二手物品交易的设计与实现
  • 大模型呼叫中心,如何建设呼入机器人系统?
  • python读写excel等数据文件方法汇总
  • 解决 IDEA 修改代码重启不生效的问题
  • 如何用python将pdf转换为json格式
  • 【Fargo】23:采集时间转rtp时间
  • 无人机反制新突破,高功率激光反无技术详解
  • 在vue3中如何优雅的管理loading状态
  • 深入内核讲明白Android Binder【一】
  • C++ STL知识点100问
  • 基于YOLOv8深度学习的智慧农业柑橘病害识别检测系统(PyQt5界面+数据集+训练代码)
  • ISCTF 2024 web
  • aws云服务器:高可靠性和数据安全
  • 使用 Easegress 实现 Telegram 翻译机器人
  • 鸿蒙北向开发环境安装指南
  • 使用ivew-ui-plus 的Submit组件踩坑 injection “LoginInstance“ not found 记录 问题原因分析与解决方案
  • HarmonyOS 如何获取设备信息(系统、版本、网络连接状态)
  • HMSC联合物种分布模型在群落生态学中的贝叶斯统计分析应用
  • SpringBoot使用@Validated注解实现参数的验证
  • Docker中的一些常用命令
  • git根据远程分支创建本地新分支
  • 文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《基于改进容积卡尔曼滤波的含光伏配电网动态状态估计》
  • 【大语言模型】ACL2024论文-15 大型语言模型中的最佳解释推断
  • 麒麟DHCP服务的部署
  • 大数据学习16之Spark-Core
  • 商业物联网详细指南:优势与挑战