報錯信息:
org.springframework.security.core.authority.SimpleGrantedAuthority;local class incompatible: stream classdesc serialVersionUID = 500, local class serialVersionUID = 520
場景:
參考人家代碼寫的spring-cloud +zuul+ Oauth2 認證,人家代碼用的是舊版本的spring-boot 2.0.2,demo走一遍後,沒問題,換自己項目,更新spring-boot 版本爲2.2.0 這時候,報錯了。
原因:
1、當在SpringBoot爲2.0.2版本時依賴的spring-security-core
和spring-security-config
爲5.0.5版本。當升級爲2.2.0版本依賴版本爲5.2.0版本。
5.0.5版本SimpleGrantedAuthority
源碼的serialVersionUID=500
,5.2.0版本下serialVersionUID=520
導致反序列化對象時爲null
。
2、是不是因爲Redis數據庫緩存問題?因爲代碼裏面是統一的,唯一有serialVersionUID=500的就是運行過一遍的Redis數據庫了(我試過刪掉所有keys沒成功)。有知道的看官可以留言告訴我,十分感謝。等我有空了我學習Redis數據庫知識後再測試一下。
嘗試:
試過以下方法情況Redis緩存keys,可能是我沒刪全?沒成功:
最後通過降級的辦法暫時跑一下: