黄冈做网站,一般网站的建设步骤有哪些,云南小程序开发哪家好,泰安网站seo前言 最近LZ给项目框架升级#xff0c; 从Spring1.x升级到Spring2.x, 在这里就不多赘述两个版本之间的区别以及升级的原因。 关于升级过程中踩的坑#xff0c;在其他博文中会做比较详细的记录#xff0c;以便给读者参考#xff0c;不要掉进同样的坑里。 这里我们讨论一个关… 前言 最近LZ给项目框架升级 从Spring1.x升级到Spring2.x, 在这里就不多赘述两个版本之间的区别以及升级的原因。 关于升级过程中踩的坑在其他博文中会做比较详细的记录以便给读者参考不要掉进同样的坑里。 这里我们讨论一个关于URL中包含双斜杠被拦截的问题。 发现问题 升级框架之后测试一个功能时发现报错Http 500 第一时间怀疑是后台功能报错。打印后台错误日志发现报错信息The request was rejected because the URL was not normalized。 之后与升级前相同环境对比发现相同的功能 升级之后URL中包含双斜杠。 分析问题 经过对比不同和错误信息初步定位问题出在URL上。查询资料得知Spring Security 在高版本中增加了StrictHttpFirewall类对URL校验更加严格。于是查看源码 private static boolean isNormalized(String path) {if (path null) {return true;} else if (path.indexOf(//) -1) {return false;} else {int i;for(int j path.length(); j 0; j i) {i path.lastIndexOf(47, j - 1);int gap j - i;if (gap 2 path.charAt(i 1) .) {return false;}if (gap 3 path.charAt(i 1) . path.charAt(i 2) .) {return false;}}return true;}
}解决问题 方法一修改项目中出现“//”双斜杠的URL路径哈哈 方法二自定义FireWall方式允许URL出现双斜杠“//” 参考:Spring 5.0.3 RequestRejectedException: The request was rejected because the URL was not normalized https://stackoverflow.com/questions/48453980/spring-5-0-3-requestrejectedexception-the-request-was-rejected-because-the-url/49116274 创建允许在URL中使用斜线的自定义防火墙。Bean
public HttpFirewall allowUrlEncodedSlashHttpFirewall() {StrictHttpFirewall firewall new StrictHttpFirewall();firewall.setAllowUrlEncodedSlash(true); return firewall;
}2.在WebSecurity中配置这个bean。 Override
public void configure(WebSecurity web) throws Exception {//formatter:offsuper.configure(web);web.httpFirewall(allowUrlEncodedSlashHttpFirewall());
....
}至此问题解决。 转载于:https://www.cnblogs.com/lanxuan826/p/10997641.html