排查问题-输出pojo日志,尽量用json
2021/7/14 23:51:00
本文主要是介绍排查问题-输出pojo日志,尽量用json,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
背景:
下午在做一个前后端md5加密签名校验.
前端用参数A,B,C,经过MD5加密函数,得到签名D.
然后前端带着ABCD一块来到后端.
同样的,后端拿到请求后,用MD5函数对ABC进行加密,得到签名E.
然后对比D和E,如果相等,证明签名没有问题.
问题:
经过数次论证,在相同的条件下(相同的参数,相同的加密函数),D和E始终不相等.
但是前端的ABC三个参数,手动使用test方法,放在后端的MD5加密工具类util里面来执行,得到签名F.
签名F和签名D相等,但是签名D和签名E不等. 也就是前端加密和工具类加密相同,但是前端加密和后端流程性加密不同.
这就很奇葩.有几个可能都会导致这种情况发生.
分析:
遇到这种情况,问题初步定为在调用函数前,对参数进行了加工. 但是经过测试,没发现有问题.
然后再次核查前端调用逻辑,也没有问题.
然后突然奇想,使用json对象日志来观察下. (因为这段代码的日志,一直都是xx.getParam()这种,直接输出String)
果然,直接就找到了问题所在. 对象输出 {"data": "\"aaaaaaaaaaaa\""}
也就是前端传参,实际上将字符串的前后都加上了双引号.
解决:
最后前端检查接口发现,是对字符串经过了两次转json.
思考:
以后输入日志参数,请尽量使用打印json,还原pojo的原貌,说不定能更快发现问题.
这篇关于排查问题-输出pojo日志,尽量用json的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01Vue.js 是什么-icode9专业技术文章分享
- 2024-11-01Vue3入门教程:从零开始搭建第一个Vue3项目
- 2024-11-01详解vueRouter4基础教程
- 2024-11-01Vuex4课程:初学者的完整入门指南
- 2024-10-31Vue3课程:新手入门到初级掌握
- 2024-10-31Vue3课程:新手入门到初级应用详解
- 2024-10-31VueRouter4课程:新手入门与实战指南
- 2024-10-31Vuex4学习:从入门到初级实战教程
- 2024-10-31Vue3教程:新手入门与基础实战
- 2024-10-31Vue教程:新手快速入门指南