Skip to content

Commit b3c8344

Browse files
committed
Merge branch '6.0.x'
Closes gh-13001
2 parents 5db3e54 + 4813ec1 commit b3c8344

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

web/src/main/java/org/springframework/security/web/FilterInvocation.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.util.Collections;
2727
import java.util.Enumeration;
2828
import java.util.LinkedHashMap;
29+
import java.util.List;
2930
import java.util.Map;
3031

3132
import jakarta.servlet.FilterChain;
@@ -257,7 +258,11 @@ public String getHeader(String name) {
257258

258259
@Override
259260
public Enumeration<String> getHeaders(String name) {
260-
return Collections.enumeration(this.headers.get(name));
261+
List<String> headerList = this.headers.get(name);
262+
if (headerList == null) {
263+
return Collections.emptyEnumeration();
264+
}
265+
return Collections.enumeration(headerList);
261266
}
262267

263268
@Override

web/src/test/java/org/springframework/security/web/FilterInvocationTests.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616

1717
package org.springframework.security.web;
1818

19+
import java.util.Enumeration;
20+
import java.util.NoSuchElementException;
21+
1922
import jakarta.servlet.FilterChain;
2023
import jakarta.servlet.http.HttpServletRequest;
2124
import jakarta.servlet.http.HttpServletResponse;
@@ -141,4 +144,23 @@ public void constructorWhenServletContextProvidedThenSetServletContextInRequest(
141144
assertThat(filterInvocation.getRequest().getServletContext()).isSameAs(mockServletContext);
142145
}
143146

147+
@Test
148+
public void testDummyRequestGetHeaders() {
149+
DummyRequest request = new DummyRequest();
150+
request.addHeader("known", "val");
151+
Enumeration<String> headers = request.getHeaders("known");
152+
assertThat(headers.hasMoreElements()).isTrue();
153+
assertThat(headers.nextElement()).isEqualTo("val");
154+
assertThat(headers.hasMoreElements()).isFalse();
155+
assertThatExceptionOfType(NoSuchElementException.class).isThrownBy(headers::nextElement);
156+
}
157+
158+
@Test
159+
public void testDummyRequestGetHeadersNull() {
160+
DummyRequest request = new DummyRequest();
161+
Enumeration<String> headers = request.getHeaders("unknown");
162+
assertThat(headers.hasMoreElements()).isFalse();
163+
assertThatExceptionOfType(NoSuchElementException.class).isThrownBy(headers::nextElement);
164+
}
165+
144166
}

0 commit comments

Comments
 (0)