網(wǎng)上說了很多諸如是spring加載順序,shirofilter在spring自動裝配bean之前的問題,其實也有可能忽略如下低級錯誤。
在shiroconfiguration中要使用@bean在applicationcontext注入myrealm,不能直接new對象。
道理和controller中調用service一樣,都要是springbean,不能自己new。
錯誤方式:
1
2
3
4
5
6
7
|
@bean (name = "securitymanager" ) public securitymanager securitymanager() { defaultwebsecuritymanager manager = new defaultwebsecuritymanager(); myrealm myrealm = new myrealm(); manager.setrealm(myrealm); return manager; } |
正確方式:
1
2
3
4
5
6
7
8
9
10
11
|
@bean (name = "myrealm" ) public myrealm myauthrealm() { myrealm myrealm = new myrealm(); return myrealm; } @bean (name = "securitymanager" ) public securitymanager securitymanager( @qualifier ( "myrealm" )myrealm myrealm) { defaultwebsecuritymanager manager = new defaultwebsecuritymanager(); manager.setrealm(myrealm); return manager; } |
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
原文鏈接:https://blog.csdn.net/u011961421/article/details/78803998