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

SpringBoot3 集成 Shiro

Apache Shiro 是一个强大且易用的Java安全框架,提供了身份验证、授权、密码学和会话管理等功能。它被广泛用于保护各种类型的应用程序,包括Web应用、桌面应用、RESTful服务、移动应用和大型企业级应用。

Apache Shiro 没有Spring Security 那么多晦涩的概念和术语,其原理非常清晰易懂,也非常容易集成到自己的项目中。

SpringBoot 2.x 已于去年底End of life,升级到 SpringBoot 3 成了一件必须要做的事情,而SpringBoot 3 在集成 Shiro 时,有一些坑,也有一些与之前不同之处。

本文重点介绍不同之处,确保可以平滑的迁移到 SpringBoot 3。

SpringBoot 3 变化

Spring Boot 3.0 是一次重大修订,我们必须先要了解以下几点:

  • Java版本的最低要求:Java 17
  • 不再支持 Java EE API
  • 所有底层依赖项从 Java EE 迁移到了 Jakarta EE API,以 Jakarta EE 9 为基准并支持 Jakarta EE 10

请确保你的项目,满足上述条件,其影响最大的莫过于 Java EE 到Jakarta EE 的变化

敲黑板,从开发的角度来说,Java EE 到Jakarta EE 仅是包名的变化,Coding时使用到的类都是一样的,API也是一样的,没啥实质性变更。

Apache Shiro 变化

Shiro 从2.x版本开始,支持Spring Boot 3,但无论你是使用1.x的Starter,还是2.x的Starter,其默认还是使用的 JavaEE API ,也就是说,按照以往的配置方式,是无法集成到 Spring Boot 3 的,会报ClassNotFoundException 异常。

总之,Shiro 对 Spring Boot 3 的快速集成的支持度还不是那么的完善,官网的介绍也是寥寥几句,参考价值不大。但可以肯定的是,Shiro 2.x 是完全支持 Spring Boot 3,只是稍微麻烦一些而已。

SpringBoot3 集成 Shiro的 POM 配置

集成的总体思路就是将Shiro中的 JavaEE 依赖 替换为Jakarta EE,直接上代码:

Maven pom.xml 配置如下:

<!-- Shiro --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring-boot-starter</artifactId> <classifier>jakarta</classifier> <version>2.0.1</version> <exclusions> <exclusion> <groupId>org.apache.shiro</groupId> <artifactId>shiro-crypto-cipher</artifactId> </exclusion> <exclusion> <groupId>org.apache.shiro</groupId> <artifactId>shiro-crypto-hash</artifactId> </exclusion> <exclusion> <groupId>org.apache.shiro</groupId> <artifactId>shiro-web</artifactId> </exclusion> <exclusion> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-web</artifactId> <classifier>jakarta</classifier> <version>2.0.1</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <classifier>jakarta</classifier> <version>2.0.1</version> </dependency>

这段 pom 代码是核心,也可以看出,较之前相比,配置稍微复杂一些,但项目中的Code、yml配置,和之前是一模一样的,只需把 Maven 坐标修改一下,即可完美实现与SpringBoot 3的集成。

知晓了原理,是不是 So Easy

更多 Shiro Yaml 配置,可以参考:https://shiro.apache.org/spring-boot.html#configuration_properties

附录

完整的Spring Boot 3 与 Apache Shiro 集成的源码,可以访问此开源项目TyFast

至此分享结束!

Enjoy It!

http://www.jsqmd.com/news/227759/

相关文章:

  • PDF-Extract-Kit保姆级教程:布局检测与公式识别完整步骤
  • PDF-Extract-Kit应用指南:图书馆文献数字化处理方案
  • PDF-Extract-Kit教程:如何构建自定义PDF解析流程
  • Springboot-配置文件中敏感信息的加密:三种加密保护方法比较
  • DLSS版本切换实战:3步解决游戏画质卡顿问题
  • L298N电机驱动模块STM32硬件接口深度剖析
  • PDF-Extract-Kit实战:图书数字化处理全流程详解
  • PDF-Extract-Kit保姆级教程:多语言OCR识别配置
  • PDF-Extract-Kit主题建模:自动分类文档内容
  • 5分钟快速上手:B站缓存视频m4s转MP4终极指南
  • STM32+Keil5 MDK安装教程:解决兼容性问题的核心要点
  • 解决STM32驱动ST7735花屏问题的系统学习
  • Keil5安装失败应对策略:实战案例分析
  • 基于SpringBoot的校园资源共享系统【个性化推荐算法+数据可视化统计】
  • PDF-Extract-Kit需求管理:功能优先级排序方法
  • PDF-Extract-Kit摘要生成:自动生成文档摘要
  • PDF-Extract-Kit社区建设:如何吸引更多贡献者
  • 科哥PDF-Extract-Kit技巧分享:批量处理PDF的自动化脚本
  • ARM Cortex-M4浮点单元配置:单精度浮点数实战案例
  • PDF-Extract-Kit代码实例:自动化测试脚本编写
  • PDF-Extract-Kit实战指南:财务报表数据提取与可视化
  • 腾讯开源翻译模型教程:REST API接口开发实战
  • 利用HAL库实现浮点数据转换示例
  • PDF-Extract-Kit入门必看:常见问题与故障排除指南
  • PDF-Extract-Kit机器学习模型:YOLO检测原理与应用
  • 利用MDK生成嵌入式C静态库:操作流程详解
  • PDF-Extract-Kit替代方案:与其他工具的比较
  • PDF-Extract-Kit性能测评:处理1000页PDF仅需10分钟
  • PDF-Extract-Kit性能优化:GPU资源利用率提升技巧
  • PDF-Extract-Kit性能深度测评:百万页文档处理挑战