springboot整合shiro項目at com.realm.UserRealm.doGetAuthenticationInfo(UserRealm.java:73) ~[classes/:na]

1.場景

啓動springboot整合shiro項目,開始正常,登錄用戶驗證報異常,如下:

 java.lang.NullPointerException: null
	at com.realm.UserRealm.doGetAuthenticationInfo(UserRealm.java:73) ~[classes/:na]

報錯代碼

  UserBean bean = userService.findByName(token.getUsername()); 

2.分析:NullPointerException, 說明userService沒有注入進來,爲什麼?

解釋shiro 的realm本身相當於過濾器,而在登錄訪問時會先走過濾器,再執行service注入,realm在前調用還沒注入service這就會出現還沒有進行service注入,已經再realm中調用注入的對象,因此就會出現上述異常

3.解決:

將realm聲明bean的形式生成,那麼再生成時就會強制注入service對象,這樣就避免了上述異常,代碼如下:
在這裏插入圖片描述

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