经历了两个礼拜的研究,终于找到了一位良师的解答,
这个错误的原因在于

加密方式和解密方式不同导致的JSON转换异常

处理方式:

**
1.检查oauth微服务是否和user或者其他相关微服务产生了依赖关系,**

2.检查加密配置类的层级结构和解密配置类的层级结构是否冲突,

解释:如果在两者有依赖的情况下,文件的层级结构又相同,那么有可能会产生问题:
两个微服务编译后的class文件都保存在了同一个class目录中,这样就会导致一个问题,在项目启动加载时,oauth微服务启动时加载的配置类有可能会去找user服务的配置类,而user配置类中的加密方式是默认的,从而导致oauth微服务的配置类并未生效,所以导致了加密方式和解密方式不一致的情况,最后才会报JSON解析异常的错误

注:以上纯属是我个人的架构原因导致的错误,很难排查,记录在案,并不代表这样的错误就是我这个原因造成的,还有可能造成的原因我也查过,通常会有:
1.公钥public.key生成后没有将其放置在一行,因此生成的公钥中会有换行符,解决办法就是将公钥的数据都放置在一行中,不要出现换行
2.在生成私钥时,命令行的加密方式和配置类中的加密解密方式没有对应上
3.代码层面的错误,建议先在测试类中先排除公钥私钥的问题,确定问题出现在配置或代码中
4.如果怀疑是JWT的问题,可以在JWT官网解析自己生成的JWT,查看自己的数据是否可以解析出来,如果可以解析出来,一般问题可以锁定在JWT的第三部分-----签名,而签名对应的就是算法问题,那么问题又回到原点了…

更多推荐

关于Cannot convert access token to JSON问题(已解决)