springboot升级过程中踩坑定位分析记录 | 京东云技术团队
💡
原文中文,约3800字,阅读约需9分钟。
📝
内容提要
文章讲述了修复一个小bug引入更大bug的故事。升级spring版本后,APP无法访问,经过分析发现是过滤器顺序未配置。最终发现是HiddenHttpMethodFilter默认配置被修改,添加参数后可正常使用。修复方案有启用HiddenHttpMethodFilter、调整过滤器顺序和修改过滤器M内部的逻辑。
🎯
关键要点
- 修复小bug引入更大bug的故事
- 因spring框架版本5.1.5.RELEASE出现偶发事故,升级至5.2.12.RELEASE
- 选择该版本原因包括经过验证和修复了之前的bug
- 升级后APP无法访问,分析发现是过滤器顺序未配置
- 过滤器M和A的默认执行顺序为M->A,修改为A->M后正常
- HiddenHttpMethodFilter过滤器在升级后默认配置由启用改为禁用
- 添加-Dspring.mvc.hiddenmethod.filter.enabled=true参数后可正常使用
- 分析源码发现request.getParameter是解决问题的关键
- 修复方案包括启用HiddenHttpMethodFilter、调整过滤器顺序和修改过滤器M逻辑
➡️