Switch RequestContextListener to Filter
Update WebMvcAutoConfiguration to use a RequestContextFilter instead of a RequestContextListener. Using a filter is required for some Spring Session operations (see https://github.com/spring-projects/spring-session/issues/129). This update also has the added benefit of allowing the Response to be accessed from RequestContextHolder.getRequestAttributes() by casting it to ServletRequestAttributes. Fixes gh-2637
This commit is contained in:
@@ -42,6 +42,7 @@ import org.springframework.boot.autoconfigure.web.ResourceProperties.Strategy;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.context.web.OrderedHiddenHttpMethodFilter;
|
||||
import org.springframework.boot.context.web.OrderedHttpPutFormContentFilter;
|
||||
import org.springframework.boot.context.web.OrderedRequestContextFilter;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
@@ -61,6 +62,7 @@ import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
|
||||
import org.springframework.web.context.request.RequestContextListener;
|
||||
import org.springframework.web.filter.HiddenHttpMethodFilter;
|
||||
import org.springframework.web.filter.HttpPutFormContentFilter;
|
||||
import org.springframework.web.filter.RequestContextFilter;
|
||||
import org.springframework.web.servlet.DispatcherServlet;
|
||||
import org.springframework.web.servlet.LocaleResolver;
|
||||
import org.springframework.web.servlet.View;
|
||||
@@ -163,9 +165,10 @@ public class WebMvcAutoConfiguration {
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public RequestContextListener requestContextListener() {
|
||||
return new RequestContextListener();
|
||||
@ConditionalOnMissingBean({ RequestContextListener.class,
|
||||
RequestContextFilter.class })
|
||||
public RequestContextFilter requestContextFilter() {
|
||||
return new OrderedRequestContextFilter();
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
||||
Reference in New Issue
Block a user