學習的時候在自定義的Realm的doGetAuthenticationInfo方法中顯示根據(jù)token查詢user信息粘招,然后對身份信息進行了username残拐,password驗證萍聊,但是看公司的項目中并沒有進行特別的驗證馁痴,只是判斷了一下user是否為空嚷硫,然后直接封裝了SimpleAuthenticationInfo按灶。覺得很奇怪症革。
查看shiro源碼才知道:
首先在進入自定義Realm之前,會經(jīng)過AuthenticatingRealm這個類的getAuthenticationInfo方法
在assertCredentialsMatch中如果不匹配會拋出異常鸯旁,而經(jīng)過上級各種的捕獲噪矛,最后會返回false。
所以在自定義的Realm中的doGetAuthenticationInfo方法中我們只需要根據(jù)token進行查詢?nèi)缓髾z查下是否為空以及其他自定義的條件铺罢,最后封裝成SimpleAuthenticationInfo返回就行了艇挨。