升级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>
相关推荐
威哥爱编程17 天前
适合才最美:Shiro安全框架使用心得
java·shiro·javaee
菠萝咕噜肉i17 天前
SpringBoot+Shiro权限管理
java·spring boot·后端·shiro
昵称为空C2 个月前
SpringBoot集成Shiro权限+Jwt认证
spring boot·shiro
杨同学technotes4 个月前
【译】Apache Shiro介绍
后端·安全·shiro
一只特立独行的猪6115 个月前
Shiro框架2
安全·shiro
shyの同学5 个月前
分布式Shiro,SpringBoot项目Shiro整合Redis
spring boot·redis·分布式·shiro
AskHarries6 个月前
Spring Boot集成shiro之使用redis缓存demo
java·spring boot·后端·shiro
AskHarries6 个月前
Spring Boot集成Shiro快速入门Demo
spring boot·后端·shiro
餘yuqn7 个月前
springboot 整合 shiro 框架自定义登录验证和权限管理
spring boot·后端·shiro