Skip to content

Commit 8f6ede5

Browse files
committed
RequestHeaderMapMethodArgumentResolver defensively checks for non-existing header values
Issue: SPR-14091 (cherry picked from commit b2a17ba)
1 parent 756301b commit 8f6ede5

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

spring-web/src/main/java/org/springframework/web/method/annotation/RequestHeaderMapMethodArgumentResolver.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2014 the original author or authors.
2+
* Copyright 2002-2016 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -66,8 +66,11 @@ public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer m
6666
}
6767
for (Iterator<String> iterator = webRequest.getHeaderNames(); iterator.hasNext();) {
6868
String headerName = iterator.next();
69-
for (String headerValue : webRequest.getHeaderValues(headerName)) {
70-
result.add(headerName, headerValue);
69+
String[] headerValues = webRequest.getHeaderValues(headerName);
70+
if (headerValues != null) {
71+
for (String headerValue : headerValues) {
72+
result.add(headerName, headerValue);
73+
}
7174
}
7275
}
7376
return result;
@@ -77,7 +80,9 @@ public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer m
7780
for (Iterator<String> iterator = webRequest.getHeaderNames(); iterator.hasNext();) {
7881
String headerName = iterator.next();
7982
String headerValue = webRequest.getHeader(headerName);
80-
result.put(headerName, headerValue);
83+
if (headerValue != null) {
84+
result.put(headerName, headerValue);
85+
}
8186
}
8287
return result;
8388
}

0 commit comments

Comments
 (0)