diff --git a/spring-bootstrap-actuator/src/main/java/org/springframework/bootstrap/actuate/autoconfigure/ActuatorAutoConfiguration.java b/spring-bootstrap-actuator/src/main/java/org/springframework/bootstrap/actuate/autoconfigure/ActuatorAutoConfiguration.java index 58c0e0ac5a0..1ae5747d4d5 100644 --- a/spring-bootstrap-actuator/src/main/java/org/springframework/bootstrap/actuate/autoconfigure/ActuatorAutoConfiguration.java +++ b/spring-bootstrap-actuator/src/main/java/org/springframework/bootstrap/actuate/autoconfigure/ActuatorAutoConfiguration.java @@ -16,8 +16,6 @@ package org.springframework.bootstrap.actuate.autoconfigure; -import java.util.List; - import org.springframework.bootstrap.actuate.properties.EndpointsProperties; import org.springframework.bootstrap.actuate.properties.ManagementServerProperties; import org.springframework.bootstrap.actuate.properties.ServerProperties; @@ -27,11 +25,6 @@ import org.springframework.bootstrap.context.annotation.EnableConfigurationPrope import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; - -import com.fasterxml.jackson.databind.SerializationFeature; /** * {@link EnableAutoConfiguration Auto-configuration} for service apps. @@ -39,23 +32,11 @@ import com.fasterxml.jackson.databind.SerializationFeature; * @author Dave Syer */ @Configuration -@Import({ ManagementConfiguration.class, MetricConfiguration.class, - ServerConfiguration.class, SecurityConfiguration.class, - TraceFilterConfiguration.class, MetricFilterConfiguration.class, - AuditConfiguration.class }) -public class ActuatorAutoConfiguration extends WebMvcConfigurationSupport { - - @Override - protected void configureMessageConverters(List> converters) { - addDefaultHttpMessageConverters(converters); - for (HttpMessageConverter converter : converters) { - if (converter instanceof MappingJackson2HttpMessageConverter) { - MappingJackson2HttpMessageConverter jacksonConverter = (MappingJackson2HttpMessageConverter) converter; - jacksonConverter.getObjectMapper().disable( - SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); - } - } - } +@Import({ ActuatorWebConfiguration.class, ManagementConfiguration.class, + MetricConfiguration.class, ServerConfiguration.class, + SecurityConfiguration.class, TraceFilterConfiguration.class, + MetricFilterConfiguration.class, AuditConfiguration.class }) +public class ActuatorAutoConfiguration { /* * ServerProperties has to be declared in a non-conditional bean, so that it gets @@ -70,6 +51,7 @@ public class ActuatorAutoConfiguration extends WebMvcConfigurationSupport { public EndpointsProperties endpointsProperties() { return new EndpointsProperties(); } + } } diff --git a/spring-bootstrap-actuator/src/main/java/org/springframework/bootstrap/actuate/autoconfigure/ActuatorWebConfiguration.java b/spring-bootstrap-actuator/src/main/java/org/springframework/bootstrap/actuate/autoconfigure/ActuatorWebConfiguration.java new file mode 100644 index 00000000000..68fe122e4ba --- /dev/null +++ b/spring-bootstrap-actuator/src/main/java/org/springframework/bootstrap/actuate/autoconfigure/ActuatorWebConfiguration.java @@ -0,0 +1,51 @@ +/* + * Copyright 2012-2013 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.bootstrap.actuate.autoconfigure; + +import java.util.List; + +import javax.servlet.Servlet; + +import org.springframework.bootstrap.context.annotation.ConditionalOnClass; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.servlet.DispatcherServlet; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; + +import com.fasterxml.jackson.databind.SerializationFeature; + +/** + * @author Dave Syer + * + */ +@ConditionalOnClass({ Servlet.class, DispatcherServlet.class }) +@Configuration +public class ActuatorWebConfiguration extends WebMvcConfigurationSupport { + + @Override + protected void configureMessageConverters(List> converters) { + addDefaultHttpMessageConverters(converters); + for (HttpMessageConverter converter : converters) { + if (converter instanceof MappingJackson2HttpMessageConverter) { + MappingJackson2HttpMessageConverter jacksonConverter = (MappingJackson2HttpMessageConverter) converter; + jacksonConverter.getObjectMapper().disable( + SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + } + } + } + +} diff --git a/spring-bootstrap-actuator/src/main/java/org/springframework/bootstrap/actuate/autoconfigure/TraceFilterConfiguration.java b/spring-bootstrap-actuator/src/main/java/org/springframework/bootstrap/actuate/autoconfigure/TraceFilterConfiguration.java index 09fc47e6546..5e7a6e58962 100644 --- a/spring-bootstrap-actuator/src/main/java/org/springframework/bootstrap/actuate/autoconfigure/TraceFilterConfiguration.java +++ b/spring-bootstrap-actuator/src/main/java/org/springframework/bootstrap/actuate/autoconfigure/TraceFilterConfiguration.java @@ -42,9 +42,6 @@ public class TraceFilterConfiguration { @Autowired(required = false) private TraceRepository traceRepository = new InMemoryTraceRepository(); - @Value("${management.dump_requests:false}") - private boolean dumpRequests; - @ConditionalOnMissingBean(TraceRepository.class) @Configuration protected static class TraceRepositoryConfiguration { @@ -54,12 +51,24 @@ public class TraceFilterConfiguration { } } - @Bean @ConditionalOnClass({ Servlet.class, DispatcherServlet.class }) - public WebRequestLoggingFilter securityFilterPostProcessor(BeanFactory beanFactory) { - WebRequestLoggingFilter filter = new WebRequestLoggingFilter(this.traceRepository); - filter.setDumpRequests(this.dumpRequests); - return filter; + protected static class WebRequestLoggingFilterConfiguration { + + @Autowired + private TraceRepository traceRepository; + + @Value("${management.dump_requests:false}") + private boolean dumpRequests; + + @Bean + public WebRequestLoggingFilter webRequestLoggingFilter(BeanFactory beanFactory) { + + WebRequestLoggingFilter filter = new WebRequestLoggingFilter( + this.traceRepository); + filter.setDumpRequests(this.dumpRequests); + return filter; + } + } }