diff --git a/web/src/main/java/org/springframework/security/web/FilterInvocation.java b/web/src/main/java/org/springframework/security/web/FilterInvocation.java index 3000d13a71..c26cef1344 100644 --- a/web/src/main/java/org/springframework/security/web/FilterInvocation.java +++ b/web/src/main/java/org/springframework/security/web/FilterInvocation.java @@ -29,6 +29,7 @@ import java.util.List; import java.util.Map; +import jakarta.servlet.DispatcherType; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletContext; import jakarta.servlet.ServletRequest; @@ -188,6 +189,11 @@ public String getCharacterEncoding() { return "UTF-8"; } + @Override + public DispatcherType getDispatcherType() { + return DispatcherType.REQUEST; + } + @Override public @Nullable Object getAttribute(String attributeName) { return null; diff --git a/web/src/test/java/org/springframework/security/web/FilterInvocationTests.java b/web/src/test/java/org/springframework/security/web/FilterInvocationTests.java index 84108b361d..e5b32440ab 100644 --- a/web/src/test/java/org/springframework/security/web/FilterInvocationTests.java +++ b/web/src/test/java/org/springframework/security/web/FilterInvocationTests.java @@ -19,6 +19,7 @@ import java.util.Enumeration; import java.util.NoSuchElementException; +import jakarta.servlet.DispatcherType; import jakarta.servlet.FilterChain; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @@ -147,4 +148,9 @@ public void testDummyRequestGetHeadersNull() { assertThatExceptionOfType(NoSuchElementException.class).isThrownBy(headers::nextElement); } + @Test + public void dummyRequestDispatcherTypeIsRequest() { + assertThat(new DummyRequest().getDispatcherType()).isEqualTo(DispatcherType.REQUEST); + } + }