news 2026/6/6 15:53:26

SpringBoot3 集成 Shiro

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/2 21:30:49

PDF-Extract-Kit教程:如何构建自定义PDF解析流程

PDF-Extract-Kit教程&#xff1a;如何构建自定义PDF解析流程 1. 引言 1.1 背景与需求 在科研、教育和企业文档处理中&#xff0c;PDF 是最常用的文件格式之一。然而&#xff0c;PDF 的非结构化特性使得从中提取文本、公式、表格等关键信息变得极具挑战。传统方法如简单 OCR …

作者头像 李华
网站建设 2026/6/5 13:32:49

PDF-Extract-Kit教程:自定义模型训练与微调方法

PDF-Extract-Kit教程&#xff1a;自定义模型训练与微调方法 1. 引言 1.1 技术背景与应用场景 在数字化文档处理领域&#xff0c;PDF 文件因其格式稳定、跨平台兼容性强而被广泛使用。然而&#xff0c;PDF 中的信息提取——尤其是结构化内容&#xff08;如表格、公式、图文布…

作者头像 李华
网站建设 2026/6/4 22:51:07

PDF-Extract-Kit性能对比:CPU与GPU处理效率测评

PDF-Extract-Kit性能对比&#xff1a;CPU与GPU处理效率测评 1. 引言 1.1 技术背景与选型需求 在当前AI驱动的文档智能处理领域&#xff0c;PDF内容提取已成为科研、教育、出版等行业数字化转型的核心环节。传统OCR工具虽能完成基础文字识别&#xff0c;但在面对复杂版式、数…

作者头像 李华
网站建设 2026/5/29 6:39:53

PDF-Extract-Kit部署实战:边缘计算环境PDF处理

PDF-Extract-Kit部署实战&#xff1a;边缘计算环境PDF处理 1. 引言 1.1 边缘计算场景下的文档智能需求 随着物联网和边缘计算的快速发展&#xff0c;越来越多的设备需要在本地完成复杂的数据处理任务。在教育、科研、金融等领域&#xff0c;PDF文档作为信息传递的主要载体&a…

作者头像 李华
网站建设 2026/6/3 17:47:07

PDF-Extract-Kit实战:法律条文自动关联系统

PDF-Extract-Kit实战&#xff1a;法律条文自动关联系统 1. 引言&#xff1a;从PDF智能提取到法律知识自动化 在法律科技&#xff08;LegalTech&#xff09;快速发展的今天&#xff0c;如何高效处理海量的法律法规、司法解释和判例文件成为行业核心痛点。传统的人工查阅与比对…

作者头像 李华
网站建设 2026/5/29 6:25:27

科哥PDF-Extract-Kit更新解析:v1.0版本功能全览

科哥PDF-Extract-Kit更新解析&#xff1a;v1.0版本功能全览 1. 引言&#xff1a;PDF智能提取的工程化实践 在科研、教育和文档处理领域&#xff0c;PDF作为标准格式承载了大量结构化与非结构化信息。然而&#xff0c;传统工具在面对复杂版式&#xff08;如公式、表格、图文混…

作者头像 李华