说的小谎. 发表于 2020-8-31 16:32:46

Tomcat部署项目出现400语法错误,url处理策略严谨问题解决办法

有的时候你会发现使用不同的Tomcat部署项目,在项目测试环境中正常,部署到Tomcat中就出现了400的错误,这个情况就无法理解了。解决方案:新出的tomcat的coyote对http头request URL解析更严格了
if ((IS_CONTROL != 0) || (i > 127) || (i == 32) || (i == 34) || (i == 35) || (i == 60) || (i == 62) || (i == 92) || (i == 94) || (i == 96) || (i == 123) || (i == 124) || (i == 125)) {
      IS_NOT_REQUEST_TARGET = true;
}
花括号{} 123和125不能包含在URL中,旧版jar包没有对花括号encode,新版jar已经没有这个问题。
如果不升级jar包,就只能用旧版的tomcat来解决这个问题了。
可用的版本有:
Tomcat 9.0.0.M11及以下
Tomcat 8.5.6及以下
Tomcat 8.0.38及以下
Tomcat 7.0.72及以下
Tomcat 6.0.47及以下

这是一个8.5.5的免安装版:待更新

根据tomcat的Changelog,URL限制使用花括号的版本是:
Tomcat 6.0.48及以上
Tomcat 7.0.73及以上
Tomcat 8.0.39及以上
Tomcat 8.5.7及以上
Tomcat 9.0.0.M12及以上
页: [1]
查看完整版本: Tomcat部署项目出现400语法错误,url处理策略严谨问题解决办法