From 94e2f907934fb57f81adf0a618b81e2b7c0dd4a4 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Tue, 26 Nov 2013 13:22:17 +0000 Subject: [PATCH] Ensure endpoints.jolokia.enabled=false switches off jolokia --- .../boot/actuate/endpoint/JolokiaEndpoint.java | 10 ++++++++++ .../JolokiaAutoConfigurationTests.java | 13 +++++++++++++ .../AutoConfigurationReportLoggingInitializer.java | 2 +- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/JolokiaEndpoint.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/JolokiaEndpoint.java index 133365bcba..d9e1eed62c 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/JolokiaEndpoint.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/JolokiaEndpoint.java @@ -28,6 +28,8 @@ import org.springframework.http.HttpMethod; @ConfigurationProperties(name = "endpoints.jolokia", ignoreUnknownFields = false) public class JolokiaEndpoint extends AbstractEndpoint { + private boolean enabled = true; + public JolokiaEndpoint() { super("/jolokia"); } @@ -41,4 +43,12 @@ public class JolokiaEndpoint extends AbstractEndpoint { public HttpMethod[] methods() { return NO_HTTP_METHOD; } + + public boolean isEnabled() { + return this.enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } } diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/JolokiaAutoConfigurationTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/JolokiaAutoConfigurationTests.java index 121c26d78c..c84a126352 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/JolokiaAutoConfigurationTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/JolokiaAutoConfigurationTests.java @@ -22,12 +22,14 @@ import javax.servlet.ServletRegistration; import org.jolokia.http.AgentServlet; import org.junit.After; import org.junit.Test; +import org.springframework.boot.TestUtils; import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration; import org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext; import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizerBeanPostProcessor; import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.MockEmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.MockEmbeddedServletContainerFactory.RegisteredServlet; +import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -62,6 +64,16 @@ public class JolokiaAutoConfigurationTests { assertEquals(1, this.context.getBeanNamesForType(AgentServlet.class).length); } + @Test + public void agentDisabled() throws Exception { + this.context = new AnnotationConfigEmbeddedWebApplicationContext(); + TestUtils.addEnviroment(this.context, "endpoints.jolokia.enabled:false"); + this.context.register(Config.class, WebMvcAutoConfiguration.class, + JolokiaAutoConfiguration.class); + this.context.refresh(); + assertEquals(0, this.context.getBeanNamesForType(AgentServlet.class).length); + } + @Test public void agentServletRegisteredWithServletContainer() throws Exception { this.context = new AnnotationConfigEmbeddedWebApplicationContext(); @@ -83,6 +95,7 @@ public class JolokiaAutoConfigurationTests { } @Configuration + @EnableConfigurationProperties protected static class Config { protected static MockEmbeddedServletContainerFactory containerFactory = null; diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/AutoConfigurationReportLoggingInitializer.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/AutoConfigurationReportLoggingInitializer.java index a4056a8663..e9a3efa4ea 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/AutoConfigurationReportLoggingInitializer.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/AutoConfigurationReportLoggingInitializer.java @@ -85,7 +85,7 @@ public class AutoConfigurationReportLoggingInitializer implements logAutoConfigurationReport(!this.applicationContext.isActive()); } - void logAutoConfigurationReport(boolean isCrashReport) { + public void logAutoConfigurationReport(boolean isCrashReport) { if (this.report == null) { this.report = AutoConfigurationReport.get(this.applicationContext .getBeanFactory());