码迷,mamicode.com
首页 > 编程语言 > 详细

自定义 UsernamePasswordToken 报错 java.lang.ClassCastException: org.apache.shiro.authc.UsernamePasswordToken cannot be cast to

时间:2019-07-18 13:48:24      阅读:310      评论:0      收藏:0      [点我收藏+]

标签:cannot   java   注入   ima   The   not   进入   src   for   

UsernamePasswordToken 转型时 出现了异常 

代码如下 

技术图片

 

没有地方使用我们的自己扩展的CustomerUsernamePasswordToken类,只是转型而已,并没有去实例化它,这才是引起问题的根源,问题发现了要如何解决它呢?我们在配置的使用并并未制定表单过滤器,此时默认使用的是FormAuthenticationFilter,而Token默认使用的也是UsernamePasswordToken,由此看来,我们扩展的CustomerUsernamePasswordToken就成了摆设,此时就要想办法如何将我们的扩展引用到程序里去呢?
既然默认的是UsernamePasswordToken,那么是如何将UsernamePasswordToken注入的呢?我们进入默认的Filter(FormAuthenticationFilter)可以看到createToken,这个是创建Token的,那么似乎可以和我们的Token搭上边了,我们需要自定义一个拦截器让它继承FormAuthenticationFilter ,重写 createToken 方法就行了

技术图片

 

 

 扩展完成后,需要配置默认的过滤器为我们的扩展,shiro的配置如下:

技术图片

 

 

 

 这样就完成啦

 

自定义 UsernamePasswordToken 报错 java.lang.ClassCastException: org.apache.shiro.authc.UsernamePasswordToken cannot be cast to

标签:cannot   java   注入   ima   The   not   进入   src   for   

原文地址:https://www.cnblogs.com/feathe/p/11206511.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!