shiro重複登錄不重新執行doGetAuthenticationInfo認證解決辦法

最近用shiro發生一個問題,那就是用戶登錄後,管理員禁用了該用戶,該用戶再次登錄時不執行Realm中的doGetAuthenticationInfo方法,導致禁用失效,但是重啓系統可以生效,猜測是緩存導致了該問題。

debug跟蹤了下源碼。


如圖,第二次登錄info不爲空,使用了緩存,沒有調用Realm的認證方法

但是我明明清除認證緩存了,再次debug下Realm的clearCachedAuthenticationIfo清除認證緩存方法,發現原來是key值不對,我清除的時候使用的是對象作爲key,而緩存用的是username也就是對象中的一個屬性作爲key,如下圖



如上圖,問題解決

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章