Don't create ApplicationContextHeaderFilter when header is disabled

See gh-4320
Closes gh-4454
This commit is contained in:
Eddú Meléndez 2015-11-12 17:17:28 -05:00 committed by Andy Wilkinson
parent b02cdc7248
commit c219f5e57f
2 changed files with 6 additions and 0 deletions

View File

@ -42,6 +42,7 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionOutcome; import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.autoconfigure.condition.SpringBootCondition; import org.springframework.boot.autoconfigure.condition.SpringBootCondition;
import org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration; import org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration;
@ -87,6 +88,7 @@ import org.springframework.web.servlet.DispatcherServlet;
* @author Christian Dupuis * @author Christian Dupuis
* @author Andy Wilkinson * @author Andy Wilkinson
* @author Johannes Edmeier * @author Johannes Edmeier
* @author Eddú Meléndez
*/ */
@Configuration @Configuration
@ConditionalOnClass({ Servlet.class, DispatcherServlet.class }) @ConditionalOnClass({ Servlet.class, DispatcherServlet.class })
@ -198,6 +200,7 @@ public class EndpointWebMvcAutoConfiguration
// Put Servlets and Filters in their own nested class so they don't force early // Put Servlets and Filters in their own nested class so they don't force early
// instantiation of ManagementServerProperties. // instantiation of ManagementServerProperties.
@Configuration @Configuration
@ConditionalOnProperty(prefix = "management", name = "addApplicationContextHeader", matchIfMissing = true, havingValue = "true")
protected static class ApplicationContextFilterConfiguration { protected static class ApplicationContextFilterConfiguration {
@Bean @Bean

View File

@ -98,6 +98,7 @@ import static org.mockito.Mockito.mock;
* @author Phillip Webb * @author Phillip Webb
* @author Greg Turnquist * @author Greg Turnquist
* @author Andy Wilkinson * @author Andy Wilkinson
* @author Eddú Meléndez
*/ */
public class EndpointWebMvcAutoConfigurationTests { public class EndpointWebMvcAutoConfigurationTests {
@ -136,6 +137,7 @@ public class EndpointWebMvcAutoConfigurationTests {
assertContent("/controller", ports.get().management, null); assertContent("/controller", ports.get().management, null);
assertContent("/endpoint", ports.get().management, null); assertContent("/endpoint", ports.get().management, null);
assertTrue(hasHeader("/endpoint", ports.get().server, "X-Application-Context")); assertTrue(hasHeader("/endpoint", ports.get().server, "X-Application-Context"));
assertTrue(this.applicationContext.containsBean("applicationContextIdFilter"));
this.applicationContext.close(); this.applicationContext.close();
assertAllClosed(); assertAllClosed();
} }
@ -149,6 +151,7 @@ public class EndpointWebMvcAutoConfigurationTests {
EndpointWebMvcAutoConfiguration.class); EndpointWebMvcAutoConfiguration.class);
this.applicationContext.refresh(); this.applicationContext.refresh();
assertFalse(hasHeader("/endpoint", ports.get().server, "X-Application-Context")); assertFalse(hasHeader("/endpoint", ports.get().server, "X-Application-Context"));
assertFalse(this.applicationContext.containsBean("applicationContextIdFilter"));
this.applicationContext.close(); this.applicationContext.close();
assertAllClosed(); assertAllClosed();
} }