升级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。其他代码就不用再修改了

<!-- 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>

相关推荐

  1. 升级springboot3.2集成shiro问题

    2024-07-14 13:42:02       28 阅读
  2. SpringBoot-Shiro

    2024-07-14 13:42:02       62 阅读
  3. 分布式ShiroSpringBoot项目Shiro整合Redis

    2024-07-14 13:42:02       33 阅读
  4. springboot1.x升级springboot3.x中遇到问题总结

    2024-07-14 13:42:02       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 13:42:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 13:42:02       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 13:42:02       58 阅读
  4. Python语言-面向对象

    2024-07-14 13:42:02       69 阅读

热门阅读

  1. 后端老鸟的前端初探:心得与领悟20240713

    2024-07-14 13:42:02       24 阅读
  2. 安卓热门面试题二

    2024-07-14 13:42:02       24 阅读
  3. StringBuilder

    2024-07-14 13:42:02       19 阅读
  4. python-生成器generator

    2024-07-14 13:42:02       21 阅读
  5. ACE之ACE_Handle_Set

    2024-07-14 13:42:02       20 阅读
  6. 微服务有哪些组件?

    2024-07-14 13:42:02       19 阅读
  7. LVM调整VG和PV

    2024-07-14 13:42:02       24 阅读
  8. docker部署sentinel

    2024-07-14 13:42:02       20 阅读
  9. 在Spring Boot中集成分布式日志系统

    2024-07-14 13:42:02       31 阅读