SpringBoot 提示:RequestRejectedException:The request was rejected because the URL was not normalized.
今天遇到一个问题:本地磁盘通过SpringMVC 资源映射成URL地址可以访问的资源,提示如下错误信息:
RequestRejectedException:The request was rejected because the URL was not normalized.
错误的大致意思:请求资源的URL地址不规范错误。
造成错误发生的原因
由于我项目集成SpringSecurity 框架,在此框架中存在一个HttpFirewall接口。主要用于:用于拒绝潜在危险请求。
HttpFirewall继承图
上述错误报错点在:StrictHttpFirewall.isNormalized()方法,主要用于:检查URL是否包含指定特殊字符./“, “/../“ or “/.”
异常的抛出
解决办法:
指定HttpFirewall的默认实现为DefaultHttpFirewall
实列代码:
/**
* HTTP 防火墙规则修改:允许URL包含双斜杠
* @return
*/
@Bean
public HttpFirewall allowUrlEncodedSlashHttpFirewall() {
return new DefaultHttpFirewall();
}
还没有评论,来说两句吧...