從SpringBoot 2.6.0升級到3.0.1之後,無法成功登錄系統的問題及解決方法

来源:https://www.cnblogs.com/passacaglia/archive/2023/01/11/17042788.html
-Advertisement-
Play Games

Redis作為一個非關係型資料庫,由於其超高的併發處理性能,及其對緩存場景所提供的系列能力構建,使其成為了集中緩存的絕佳選擇。本篇我們聊聊Redis數據管理的能力,如數據過期、數據淘汰、數據持久化等。 ...


簡單記錄一下從SpringBoot 2.6.0升級到3.0.1之後,無法成功登錄系統的問題。

目前的解決方法:
在SecurityConfiguration配置中添加 httpSecurity.securityContext().requireExplicitSave(false); ,然後就能正常登錄了。

但是沒法解釋的是,直接使用系統中預設的UsernamePasswordFilter時,是不用添加這一句也能正常登錄的。等過兩天再研究吧。


相關的鏈接:
SwitchUserFilter not working in Spring Security 6
https://github.com/spring-projects/spring-security/issues/12504

After upgrade to spring boot 3.0.0-M5, TestingAuthenticationToken and UsernamePasswordAuthenticationToken not work the same as spring boot 2.7.3 #11977
https://github.com/spring-projects/spring-security/issues/11977

Spring security does not redirect to success login after authentication success #4479
https://github.com/spring-projects/spring-security/issues/4479


寫給自己看的:

系統中有多個自定義的AuthenticationFilter和對應的自定義AuthenticationProvider。升級到3.0.1之後,無法成功登錄。
Debug的時候,發現在自定義的AuthenticationProvider中是能成功返回authentication的,但是之後卻不能成功重定向到首頁。如下麵鏈接中有提到的,認證信息被清除了。
後來又找到了幾個相關的關鍵詞 requireExplicitSave SecurityContextHolderFilter SecurityContextPersistenceFilter
之前是預設會自動存認證信息,現在需要顯式存儲。不過還是搞不清楚具體是什麼意思。

測試項目中的幾種情況:
1,自定義authentication provider,不用自定義的authentication filter,可以成功登錄。
2,自定義authentication provider,用了自定義的authentication filter,不能成功登錄。但是在配置中添加 httpSecurity.securityContext().requireExplicitSave(false) 之後,就能成功登錄。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在 YARN 中,Application 是指應用程式,它可能啟動多個運行實例,每個運行實例由 —個 ApplicationMaster 與一組該 ApplicationMaster 啟動的任務組成,它擁有名稱、隊列、優先順序等屬性,是一個比較寬泛的概念,可以是一個 MepReduce 作業、一個 D... ...
  • 2023-01-10 一、MyBatis自動映射與自定義映射 1、自動映射: 在映射文件中使用的是“resultType”。指的是自動將資料庫中表的欄位與類中的屬性進行關聯映射。 2、自定義映射: (1)在映射文件中使用的是“resultMap”。一般是自動映射解決不了的問題,就使用自定義映射。 有 ...
  • 圖文並茂的內容往往讓人看起來更加舒服,如果只是文字內容的累加,往往會使讀者產生視覺疲勞。搭配精美的文章配圖則會使文章內容更加豐富,增加文章可讀性的同時,也能提升用戶體驗。但由於PDF文檔安全性較高,不易對其進行修改編輯,那我們要如何在PDF中插入、替換或刪除圖像呢?別擔心,今天為大家介紹一種高效便捷... ...
  • 一、前言 今天小編帶大家一起整合一下easyExcel,之所以用這個,是因為easyExcel性能比較好,不會報OOM! 市面上常見的導入導出Excel分為三種: hutool easyExcel poi hutool和easyExcel都是對poi的封裝,使用起來更加方便! 如果想使用poi和hu ...
  • 一、前言”前後端分離“已經成為互聯網項目開發的業界標桿,通過Tomcat+Ngnix(也可以中間有個Node.js),有效地進行解耦。並且前後端分離會為以後的大型分散式架構、彈性計算架構、微服務架構、多端化服務(多種客戶端,例如:瀏覽器,車載終端,安卓,IOS等等)打下堅實的基礎。前後端分離(解耦) ...
  • 1、在任意目錄之間快速移動 你發現自己要在兩個或更多目錄之間頻繁移動,一會切換到這裡,一會切換到那裡,來回跳轉。這些目錄之間隔得還挺遠,反覆輸入冗長的路徑讓人疲憊不堪。 使用內建命令 pushd 和 popd 來管理目錄棧,輕鬆地在目錄之間切換。下麵是一個簡單的示例: $ cd /tmp/tank ...
  • 奉行長期主義的開發者都有一個共識:對於伺服器來說,數據備份非常重要,因為伺服器上的數據通常是無價的,如果丟失了這些數據,可能會導致嚴重的後果,伴隨雲時代的發展,備份技術也讓千行百業看到了其“雲基因”的成長與進化,即基於雲存儲的雲備份。 本次我們使用Golang1.18完成百度網盤(百度雲盤)介面AP ...
  • JavaWeb綜合案例 筆記目錄:(https://www.cnblogs.com/wenjie2000/p/16378441.html) 視頻教程(P154~P163) 功能列表 環境搭建 執行提供的下麵的tb_brand.sql腳本 -- 刪除tb_brand表 drop table if ex ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...