提交 b3982161 编写于 作者: R Rossen Stoyanchev

Fail proactively if lookupPath not in requestUri

Closes gh-22851
上级 b5327ef6
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
......@@ -30,6 +30,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.web.filter.GenericFilterBean;
import org.springframework.web.util.UrlPathHelper;
......@@ -96,6 +97,10 @@ public class ResourceUrlEncodingFilter extends GenericFilterBean {
String requestUri = pathHelper.getRequestUri(this);
String lookupPath = pathHelper.getLookupPathForRequest(this);
this.indexLookupPath = requestUri.lastIndexOf(lookupPath);
Assert.isTrue(this.indexLookupPath != -1, () ->
"Failed to find lookupPath '" + lookupPath + "' within requestUri '" + requestUri + ". " +
"Does the path have invalid encoded characters " +
"for characterEncoding=" + getRequest().getCharacterEncoding() + "?");
this.prefixLookupPath = requestUri.substring(0, this.indexLookupPath);
if ("/".equals(lookupPath) && !"/".equals(requestUri)) {
String contextPath = pathHelper.getContextPath(this);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册