升级springboot3.2集成shiro的问题

由于之前的springcloud相关版本太久,很多新功能无法使用,所以打算抽时间把代码的版本做一下升级。使用最新版的springboot3.2,发现shiro过滤器无效。经检查发现原因:

springboot3.x使用的是JDK17,从jdk8以后javax.servlet的相关代码包名改成了jakarta.servlet,shiro-spring的版本1.7,使用的仍然是javax.servlet,在ShiroFilter中因引入的servlet不一致,导致无法解析。首先想到的是升级shiro相关jar包,从maven中找到最新的版本2.0.1发现,shiro对应的最新springboot版本仍是2.X,使用的也还是javax.servlet。

通过一下方法,排除javax.servlet,引入jakarta的依赖。这样就可以了。

注意:

在修改了maven依赖后,一定要检查一下maven其他地方是否引入的还有javax.servlet包,有的话都排除掉,然后将代码中javax.servlet的引用,替换为jakarta.servlet。其他代码就不用再修改了

XML 复制代码
<!-- shiro -->
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-spring</artifactId>
    <classifier>jakarta</classifier>
    <version>2.0.1</version>
    <!-- 排除仍使用了javax.servlet的依赖 -->
    <exclusions>
        <exclusion>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-web</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!-- 引入适配jakarta的依赖包 -->
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-core</artifactId>
    <classifier>jakarta</classifier>
    <version>2.0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-web</artifactId>
    <classifier>jakarta</classifier>
    <version>2.0.1</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>
相关推荐
J_liaty11 天前
Spring Boot整合Shiro实现权限认证
java·spring boot·后端·shiro
SuperherRo15 天前
JAVA攻防-Shiro专题&key利用链&CB1链分析&入口点&调用链&执行地&Class加载
java·shiro·反序列化·cb1链
SuperherRo20 天前
JAVA攻防-Shiro专题&断点调试&有key利用链&URL&CC&CB&原生反序列化&加密逻辑
java·shiro·反序列化·有key·利用链·原生反序列化·加密逻辑
李白你好25 天前
Shiro漏洞利用工具,更新V0.2!
shiro
李昊哲小课2 个月前
Apache Shiro 教程
apache·shiro
间彧5 个月前
Shrio基本原理及工作流程
shiro
魏波.6 个月前
Apache Shiro“全栈式安全框架”简述
apache·shiro
TracyCoder1237 个月前
Apache Shiro 框架详解
安全·apache·shiro·认证·登录
BOB-wangbaohai8 个月前
LangChain4j入门AI(六)整合提示词(Prompt)
人工智能·prompt·springboot3.x·langchain4j
神经毒素8 个月前
WEB安全--Java安全--shiro550反序列化漏洞
java·安全·web安全·shiro