1. 程式人生 > >shiro重複登入不重新執行doGetAuthenticationInfo認證解決辦法

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

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

debug跟蹤了下原始碼。


如圖,第二次登入info不為空,使用了快取,沒有呼叫Realm的認證方法

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



如上圖,問題解決