自定義 UsernamePasswordToken 報錯 java.lang.ClassCastException: org.apache.shiro.authc.UsernamePasswordToken cannot be cast to


UsernamePasswordToken 轉型時 出現了異常 

代碼如下 

 

沒有地方使用我們的自己擴展的CustomerUsernamePasswordToken類,只是轉型而已,並沒有去實例化它,這才是引起問題的根源,問題發現了要如何解決它呢?我們在配置的使用並並未制定表單過濾器,此時默認使用的是FormAuthenticationFilter,而Token默認使用的也是UsernamePasswordToken,由此看來,我們擴展的CustomerUsernamePasswordToken就成了擺設,此時就要想辦法如何將我們的擴展引用到程序里去呢?
既然默認的是UsernamePasswordToken,那么是如何將UsernamePasswordToken注入的呢?我們進入默認的Filter(FormAuthenticationFilter)可以看到createToken,這個是創建Token的,那么似乎可以和我們的Token搭上邊了,我們需要自定義一個攔截器讓它繼承FormAuthenticationFilter ,重寫 createToken 方法就行了

 

 

 擴展完成后,需要配置默認的過濾器為我們的擴展,shiro的配置如下:

 

 

 

 這樣就完成啦

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM