2020-10-15 16:05

@JFinal 如果能在jfinal中添加那就太好了,Kv是个很好用的map对象,我本人在项目的使用率就非常高,也很喜欢。
其实在JDK的源码中也能看到,基本上所有的数据对象都添加了serialVersionUID,我倒是不觉得代码丑陋,毕竟这样能够保证升级版本不会影响到数据的反序列化,希望波总采纳

2020-10-15 15:16

@JFinal 谢谢波总,我已经找到问题了
该异常是由org.springframework.security.oauth2.common.util.SerializationUtils中的deserializeAccessToken方法将token反序列化,因为生成的token的过程中使用到了Kv对象,所以在反序列化后将会出现异常

解决方法:清除数据库中存储的token即可解决
使用mysql存储,需要清空oauth_access_token表和oauth_refresh_token表
使用redis存储,使用flushall清空缓存即可

其他想法或经验:在开发环境这样操作问题不大,如果是在生产环境,将用户登录的token数据直接清除是很不合理的。以上出现的问题是因为生成token的过程中使用到了Kv,所以需要在开发阶段避免。

其他:在使用HttpKit.post时,传参使用HashMap或者Kv都行,希望不要造成只能使用HashMap的误解。

这不是HttpKit.post的问题!!!

2020-10-15 13:44

@JFinal 项目是聚合的,所有基础的jar包管理是在一个pom文件中,的确我在4.9+的版本中看到Kv是有变化的,另外一点HttpKit.post的参数我尝试换掉Kv,改为HashMap,但还是报出同样的异常了,测试中唯独增加serialVersionUID这个途径能够解决