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逻辑
➡️

继续阅读