ForwardedHeaderFilter is case-insensitive

Issue: SPR-14372
This commit is contained in:
Rossen Stoyanchev
2016-06-17 14:20:42 -04:00
parent 981a748dcc
commit 919f6c96f9
3 changed files with 88 additions and 42 deletions

View File

@@ -16,6 +16,7 @@
package org.springframework.web.servlet.support;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
import org.springframework.http.HttpRequest;
@@ -133,8 +134,15 @@ public class ServletUriComponentsBuilder extends UriComponentsBuilder {
}
private static String prependForwardedPrefix(HttpServletRequest request, String path) {
String prefix = request.getHeader("X-Forwarded-Prefix");
if (StringUtils.hasText(prefix)) {
String prefix = null;
Enumeration<String> names = request.getHeaderNames();
while (names.hasMoreElements()) {
String name = names.nextElement();
if ("X-Forwarded-Prefix".equalsIgnoreCase(name)) {
prefix = request.getHeader(name);
}
}
if (prefix != null) {
path = prefix + path;
}
return path;