Share HandlerInterceptors in ResourceHandlerMapping
Prior to this commit, the Resource `HandlerMapping` configured by `@EnableSpringMvc` would be set up with only one custom `HandlerInterceptor` (the one exposing the `ResourceUrlProvider` for resolving URLs of static resources). This behavior is not consistent with the rest of the default configuration which leverages the interceptors configured against the interceptor registry (with possible user-provided ones). This change allows to register interceptors against resource handling; this can be useful for metrics purposes, as in spring-projects/spring-boot#10335. Issue: SPR-16034
This commit is contained in:
@@ -160,9 +160,11 @@ public class WebMvcConfigurationSupportExtensionTests {
|
||||
chain = handlerMapping.getHandler(new MockHttpServletRequest("GET", "/resources/foo.gif"));
|
||||
assertNotNull(chain);
|
||||
assertNotNull(chain.getHandler());
|
||||
assertEquals(Arrays.toString(chain.getInterceptors()), 2, chain.getInterceptors().length);
|
||||
assertEquals(Arrays.toString(chain.getInterceptors()), 4, chain.getInterceptors().length);
|
||||
// PathExposingHandlerInterceptor at chain.getInterceptors()[0]
|
||||
assertEquals(ResourceUrlProviderExposingInterceptor.class, chain.getInterceptors()[1].getClass());
|
||||
assertEquals(LocaleChangeInterceptor.class, chain.getInterceptors()[1].getClass());
|
||||
assertEquals(ConversionServiceExposingInterceptor.class, chain.getInterceptors()[2].getClass());
|
||||
assertEquals(ResourceUrlProviderExposingInterceptor.class, chain.getInterceptors()[3].getClass());
|
||||
|
||||
handlerMapping = (AbstractHandlerMapping) this.config.defaultServletHandlerMapping();
|
||||
handlerMapping.setApplicationContext(this.context);
|
||||
|
||||
Reference in New Issue
Block a user