Apply filter order to ServerHttpObservationFilter
Closes gh-35067
This commit is contained in:
parent
140c37ceba
commit
efcc65bc5b
|
@ -44,7 +44,6 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
|
|||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.http.server.observation.DefaultServerRequestObservationConvention;
|
||||
import org.springframework.http.server.observation.ServerRequestObservationConvention;
|
||||
|
@ -58,6 +57,7 @@ import org.springframework.web.servlet.DispatcherServlet;
|
|||
* @author Brian Clozel
|
||||
* @author Jon Schneider
|
||||
* @author Dmytro Nosan
|
||||
* @author Moritz Halbritter
|
||||
* @since 3.0.0
|
||||
*/
|
||||
@AutoConfiguration(after = { MetricsAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class,
|
||||
|
@ -90,7 +90,7 @@ public class WebMvcObservationAutoConfiguration {
|
|||
customTagsProvider.getIfAvailable(), contributorsProvider.orderedStream().toList());
|
||||
ServerHttpObservationFilter filter = new ServerHttpObservationFilter(registry, convention);
|
||||
FilterRegistrationBean<ServerHttpObservationFilter> registration = new FilterRegistrationBean<>(filter);
|
||||
registration.setOrder(Ordered.HIGHEST_PRECEDENCE + 1);
|
||||
registration.setOrder(this.observationProperties.getHttp().getServer().getFilter().getOrder());
|
||||
registration.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.ASYNC);
|
||||
return registration;
|
||||
}
|
||||
|
|
|
@ -64,6 +64,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
|
|||
* @author Tadaya Tsuyukubo
|
||||
* @author Madhura Bhave
|
||||
* @author Chanhyeong LEE
|
||||
* @author Moritz Halbritter
|
||||
*/
|
||||
@ExtendWith(OutputCaptureExtension.class)
|
||||
@SuppressWarnings("removal")
|
||||
|
@ -117,6 +118,15 @@ class WebMvcObservationAutoConfigurationTests {
|
|||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void filterRegistrationOrderCanBeOverridden() {
|
||||
this.contextRunner.withPropertyValues("management.observations.http.server.filter.order=1000")
|
||||
.run((context) -> {
|
||||
FilterRegistrationBean<?> registration = context.getBean(FilterRegistrationBean.class);
|
||||
assertThat(registration.getOrder()).isEqualTo(1000);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void filterRegistrationBacksOffWithAnotherServerHttpObservationFilterRegistration() {
|
||||
this.contextRunner.withUserConfiguration(TestServerHttpObservationFilterRegistrationConfiguration.class)
|
||||
|
|
Loading…
Reference in New Issue