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