diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaManagementContextConfiguration.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaManagementContextConfiguration.java index 5ced326a7c0..1bbd03f10bb 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaManagementContextConfiguration.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaManagementContextConfiguration.java @@ -54,7 +54,7 @@ import org.springframework.web.servlet.mvc.ServletWrappingController; @ManagementContextConfiguration @ConditionalOnWebApplication(type = Type.SERVLET) @ConditionalOnClass({ AgentServlet.class, ServletWrappingController.class }) -@ConditionalOnProperty(value = "management.jolokia.enabled", matchIfMissing = true) +@ConditionalOnProperty(value = "management.jolokia.enabled", havingValue = "true") @EnableConfigurationProperties(JolokiaProperties.class) public class JolokiaManagementContextConfiguration { diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaProperties.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaProperties.java index 8a24b5b95db..38f6a0358e2 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaProperties.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaProperties.java @@ -35,7 +35,7 @@ public class JolokiaProperties { /** * Enable Jolokia. */ - private boolean enabled = true; + private boolean enabled; /** * Path at which Jolokia will be available. diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaManagementContextConfigurationIntegrationTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaManagementContextConfigurationIntegrationTests.java index 47fda280539..1d4ff903746 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaManagementContextConfigurationIntegrationTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaManagementContextConfigurationIntegrationTests.java @@ -58,7 +58,8 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) @DirtiesContext -@TestPropertySource(properties = "management.security.enabled=false") +@TestPropertySource(properties = { "management.jolokia.enabled=true", + "management.security.enabled=false" }) public class JolokiaManagementContextConfigurationIntegrationTests { @Autowired diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaManagementContextConfigurationTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaManagementContextConfigurationTests.java index 97eebcd637a..548e49ee4da 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaManagementContextConfigurationTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/jolokia/JolokiaManagementContextConfigurationTests.java @@ -44,47 +44,49 @@ public class JolokiaManagementContextConfigurationTests { @Test public void jolokiaIsEnabledByDefault() { - this.contextRunner.run((context) -> { - assertThat(context).hasSingleBean(ServletRegistrationBean.class); - ServletRegistrationBean registrationBean = context - .getBean(ServletRegistrationBean.class); - assertThat(registrationBean.getUrlMappings()) - .contains("/application/jolokia/*"); - assertThat(registrationBean.getInitParameters()).isEmpty(); - }); - } - - @Test - public void jolokiaCanBeDisabled() { - this.contextRunner.withPropertyValues("management.jolokia.enabled=false") - .run((context) -> assertThat(context) - .doesNotHaveBean(ServletRegistrationBean.class)); - } - - @Test - public void customPath() { - this.contextRunner.withPropertyValues("management.jolokia.path=/lokia") - .run(isDefinedOnPath("/application/lokia/*")); - } - - @Test - public void customManagementPath() { - this.contextRunner.withPropertyValues("management.context-path=/admin") - .run(isDefinedOnPath("/admin/jolokia/*")); - } - - @Test - public void customInitParameters() { - this.contextRunner.withPropertyValues("management.jolokia.config.debug=true") + this.contextRunner.withPropertyValues("management.jolokia.enabled=true") .run((context) -> { assertThat(context).hasSingleBean(ServletRegistrationBean.class); ServletRegistrationBean registrationBean = context .getBean(ServletRegistrationBean.class); - assertThat(registrationBean.getInitParameters()) - .containsOnly(entry("debug", "true")); + assertThat(registrationBean.getUrlMappings()) + .contains("/application/jolokia/*"); + assertThat(registrationBean.getInitParameters()).isEmpty(); }); } + @Test + public void jolokiaIsDisabledByDefault() { + this.contextRunner.run((context) -> assertThat(context) + .doesNotHaveBean(ServletRegistrationBean.class)); + } + + @Test + public void customPath() { + this.contextRunner.withPropertyValues("management.jolokia.enabled=true", + "management.jolokia.path=/lokia").run( + isDefinedOnPath("/application/lokia/*")); + } + + @Test + public void customManagementPath() { + this.contextRunner.withPropertyValues("management.jolokia.enabled=true", + "management.context-path=/admin").run( + isDefinedOnPath("/admin/jolokia/*")); + } + + @Test + public void customInitParameters() { + this.contextRunner.withPropertyValues("management.jolokia.enabled=true", + "management.jolokia.config.debug=true").run((context) -> { + assertThat(context).hasSingleBean(ServletRegistrationBean.class); + ServletRegistrationBean registrationBean = context + .getBean(ServletRegistrationBean.class); + assertThat(registrationBean.getInitParameters()) + .containsOnly(entry("debug", "true")); + }); + } + private ContextConsumer isDefinedOnPath( String path) { return (context) -> { diff --git a/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc b/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc index 4ed4faa7a93..fbfec62f7d7 100644 --- a/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc +++ b/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc @@ -1274,7 +1274,7 @@ content into your application; rather pick only the properties that you need. # JOLOKIA ({sc-spring-boot-actuator}/autoconfigure/jolokia/JolokiaProperties.{sc-ext}[JolokiaProperties]) management.jolokia.config.*= # Jolokia settings. See the Jolokia manual for details. - management.jolokia.enabled=true # Enable Jolokia. + management.jolokia.enabled=false # Enable Jolokia. management.jolokia.path=/jolokia # Path at which Jolokia will be available. # TRACING ({sc-spring-boot-actuator}/trace/TraceProperties.{sc-ext}[TraceProperties]) diff --git a/spring-boot-samples/spring-boot-sample-actuator-ui/src/main/resources/application.properties b/spring-boot-samples/spring-boot-sample-actuator-ui/src/main/resources/application.properties index ed6b8f03687..a8df462fe73 100644 --- a/spring-boot-samples/spring-boot-sample-actuator-ui/src/main/resources/application.properties +++ b/spring-boot-samples/spring-boot-sample-actuator-ui/src/main/resources/application.properties @@ -1,2 +1,3 @@ health.diskspace.enabled=false -endpoints.all.web.enabled=true \ No newline at end of file +endpoints.all.web.enabled=true +management.jolokia.enabled=true \ No newline at end of file