Add FilterRegistration's defensively
Follow-up to d2225c, which broke Boot tests because the ServletContext can be the one of the embedded Servlet container if initializing a live server and as well as MockMvc (e.g. via `@AutoConfigureMockMvc`). See gh-33252
This commit is contained in:
@@ -111,19 +111,18 @@ final class MockMvcFilterDecorator implements Filter {
|
||||
String className = delegate.getClass().getName();
|
||||
|
||||
return servletContext -> {
|
||||
MockServletContext mockServletContext = (MockServletContext) servletContext;
|
||||
MockFilterConfig filterConfig;
|
||||
if (filterName != null) {
|
||||
filterConfig = new MockFilterConfig(servletContext, filterName);
|
||||
mockServletContext.addFilterRegistration(new MockFilterRegistration(className, filterName));
|
||||
}
|
||||
else {
|
||||
filterConfig = new MockFilterConfig(servletContext);
|
||||
mockServletContext.addFilterRegistration(new MockFilterRegistration(className));
|
||||
}
|
||||
MockFilterConfig filterConfig = (filterName != null ?
|
||||
new MockFilterConfig(servletContext, filterName) : new MockFilterConfig(servletContext));
|
||||
|
||||
if (initParams != null) {
|
||||
initParams.forEach(filterConfig::addInitParameter);
|
||||
}
|
||||
|
||||
if (servletContext instanceof MockServletContext mockServletContext) {
|
||||
mockServletContext.addFilterRegistration(filterName != null ?
|
||||
new MockFilterRegistration(className, filterName) : new MockFilterRegistration(className));
|
||||
}
|
||||
|
||||
return filterConfig;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user