欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決Spring?Security升級到5.5.7、5.6.4及以上啟動報錯出現(xiàn)版本不兼容的問題

 更新時間:2024年08月14日 09:29:30   作者:Master_Shifu_  
這篇文章主要介紹了解決Spring?Security升級到5.5.7、5.6.4及以上啟動報錯出現(xiàn)版本不兼容的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

1.背景

版本比對檢測原理:檢查當前系統(tǒng)中spring-security-web版本是否在漏洞版本范圍內|版本比對檢測結果:- spring-security-web

當前安裝版本:5.2.1.RELEASE

需要升級到 5.5.7、5.6.4 及以上版本,因為pom中找不到直接引用的位置,所以加入以下依賴將spring-security-web版本強制升級到5.5.7

    <!-- 修復spring-security-web版本漏洞 -->
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>5.5.7</version>
    </dependency>

啟動時報錯,報錯內容如下:

***************************
APPLICATION FAILED TO START
***************************

Description:

An attempt was made to call a method that does not exist. The attempt was made from the following location:

    org.springframework.security.web.util.matcher.OrRequestMatcher.<init>(OrRequestMatcher.java:43)

The following method did not exist:

    org.springframework.util.Assert.noNullElements(Ljava/util/Collection;Ljava/lang/String;)V

The method's class, org.springframework.util.Assert, is available from the following locations:

    jar:file:/C:/Users/sutpc/.m2/repository/org/springframework/spring-core/5.1.18.RELEASE/spring-core-5.1.18.RELEASE.jar!/org/springframework/util/Assert.class

It was loaded from the following location:

    file:/C:/Users/sutpc/.m2/repository/org/springframework/spring-core/5.1.18.RELEASE/spring-core-5.1.18.RELEASE.jar

2.原因分析

可以發(fā)現(xiàn)spring包版本不兼容導致該問題

理論上是spring-security-web是在某一個jar引入

單獨改了spring-security-web的版本

導致這個jar中的配套代碼不兼容導致的問題

3.解決方式

將spring-boot-dependencies的2.1.17.RELEASE升級到2.2.2.RELEASE
            <!-- SpringBoot的依賴配置-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
<!--                <version>2.1.17.RELEASE</version>-->
                <version>2.2.2.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
在pom的最后直接使用spring-security-web的5.5.7強制覆蓋版本即可
        <!-- 修復spring-security-web版本漏洞 -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>5.5.7</version>
        </dependency>

4.解決思路

因為單獨改了spring-security-web的版本

導致這個jar中的配套代碼不兼容導致的問題

所以首要問題需要找到spring-security-web由哪個jar引入的

4.1查詢Maven 項目查找 jar 包是由哪個依賴引入的

直接使用mvn dependency:tree可以查看項目完整的依賴樹。

1.命令格式

mvn dependency:tree -Dverbose -Dincludes=要查詢的內容(groupId:artifactId)

  • -dependency:tree:表示樹狀顯示。
  • -Dverbose:表示可以顯示所有的引用,包括因為多次引用重復而忽略的。
  • -Dincludes:可以制定查詢條件

spring-security-web的groupId和artifactId為:

groupId: org.springframework.security
artifactId: spring-security-web
所以命令為
mvn dependency:tree -Dverbose -Dincludes=org.springframework.security:spring-security-web

4.2在idea的Teminal中執(zhí)行之后依賴層級如下圖

4.3spring-security-web是由spring-boot-starter-security引入的

spring-security-web是由spring-boot-starter-security引入的

版本是2.1.17.RELEASE

搜spring-boot-starter-security發(fā)現(xiàn)又是使用的spring-boot-dependencies-2.1.17.RELEASE.pom的版本

4.4spring-boot-starter-security版本是繼承spring-boot-dependencies的版本

在全局搜spring-boot-dependencies的版本,

發(fā)現(xiàn)果然是2.1.17.RELEASE,到此,所有的依賴層級都找到了,

那開始猜,是不是spring-boot-dependencies版本太低了,

spring-security-web的版本太高了導致的不兼容,

spring-security-web版本不能調低,只能升級spring-boot-dependencies的版本,

在maven倉庫查找spring-boot-dependencies版本,

逐級測試,發(fā)現(xiàn)2.2.2.RELEASE可以支持,所以問題到此解決.

參考:Maven 項目查找 jar 包是由哪個依賴引入的

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • idea微服務項目服務如何顯示在同一窗口

    idea微服務項目服務如何顯示在同一窗口

    本文介紹了如何在微服務項目導入時將所有服務加入同一窗口中,解決啟動項目服務時顯示不全的問題,通過點擊左上角的View,選擇ToolWindows,然后選擇Services,使用快捷鍵Alt+8,選擇Spring Boot,就可以將所有服務加到同一窗口中
    2025-02-02
  • IDEA中創(chuàng)建maven項目webapp目錄無法識別即未被標識的解決辦法

    IDEA中創(chuàng)建maven項目webapp目錄無法識別即未被標識的解決辦法

    在學習SpringMVC課程中,基于IDEA新建maven項目模塊后,webapp目錄未被標識,即沒有小藍點的圖標顯示,所以本文給大家介紹了IDEA中創(chuàng)建maven項目webapp目錄無法識別即未被標識的解決辦法,需要的朋友可以參考下
    2024-03-03
  • SpringBoot自定義注解如何解決公共字段填充問題

    SpringBoot自定義注解如何解決公共字段填充問題

    本文介紹了在系統(tǒng)開發(fā)中,如何使用AOP切面編程實現(xiàn)公共字段自動填充的功能,從而簡化代碼,通過自定義注解和切面類,可以統(tǒng)一處理創(chuàng)建時間和修改時間,以及創(chuàng)建人和修改人的賦值操作
    2025-03-03
  • Java web入門指南之在Idea上創(chuàng)建Java web項目

    Java web入門指南之在Idea上創(chuàng)建Java web項目

    好多書上的JavaWeb教程都是Eclipse以及MyEclipse,當然這里不論IDE的好壞,下面這篇文章主要給大家介紹了關于Java web入門指南之在Idea上創(chuàng)建Java web項目的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • Java注解(Annotations)的定義和使用詳解

    Java注解(Annotations)的定義和使用詳解

    Java注解(Annotations)是Java5引入的一種元數(shù)據(jù)(Metadata),它提供了一種在源代碼中嵌入補充信息的方式,這些信息可以被編譯器、JVM或其他工具在編譯時、運行時進行處理,注解本身不會直接影響程序的執(zhí)行,但可以用來指導編譯器、JVM或其他工具的行為,從而實現(xiàn)各種功能
    2025-03-03
  • 使用Spring處理x-www-form-urlencoded方式

    使用Spring處理x-www-form-urlencoded方式

    這篇文章主要介紹了使用Spring處理x-www-form-urlencoded方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java中的CGLIB動態(tài)代理的使用及原理詳解

    Java中的CGLIB動態(tài)代理的使用及原理詳解

    這篇文章主要介紹了Java中的CGLIB動態(tài)代理的使用及原理詳解,CGLIB是一個功能強大,高性能的代碼生成包,它為沒有實現(xiàn)接口的類提供代理,為JDK的動態(tài)代理提供了很好的補充,需要的朋友可以參考下
    2023-09-09
  • MybatisPlus 插入或更新數(shù)據(jù)時自動填充更新數(shù)據(jù)解決方案

    MybatisPlus 插入或更新數(shù)據(jù)時自動填充更新數(shù)據(jù)解決方案

    本文主要介紹了MybatisPlus 插入或更新數(shù)據(jù)時自動填充更新數(shù)據(jù)解決方案,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java實戰(zhàn)之藥品管理系統(tǒng)的實現(xiàn)

    Java實戰(zhàn)之藥品管理系統(tǒng)的實現(xiàn)

    這篇文章主要介紹了利用Java實現(xiàn)的藥品管理系統(tǒng),本項目屬于前后端分離的項目,分為兩個角色藥品管理員和取藥處人員,感興趣的小伙伴可以學習一下
    2022-04-04
  • Java中數(shù)組的定義與使用

    Java中數(shù)組的定義與使用

    下面小編就為大家?guī)硪黄猨ava中數(shù)組的定義與使用小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-10-10

最新評論