Add support for endpoints.env.post.enabled=false

Separately disable the POST /env from the GET. Fixes gh-106.
This commit is contained in:
Dave Syer
2016-04-18 10:04:56 +01:00
parent 1824a96968
commit b54c8e80e8
3 changed files with 56 additions and 7 deletions

View File

@@ -4,6 +4,7 @@ import org.junit.Test;
import org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.context.environment.EnvironmentManagerMvcEndpoint;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;
@@ -19,6 +20,16 @@ import static org.junit.Assert.assertThat;
*/
public class LifecycleMvcAutoConfigurationTests {
@Test
public void postEnvMvcEndpointDisabled() {
try (ConfigurableApplicationContext context = getApplicationContext(Config.class,
"server.port=0", "endpoints.env.post.enabled=false")) {
assertThat(context
.getBeanNamesForType(EnvironmentManagerMvcEndpoint.class).length,
is(equalTo(0)));
}
}
@Test
public void pauseMvcEndpointDisabled() {
endpointDisabled("endpoints.pause.enabled", "pauseMvcEndpoint");
@@ -35,16 +46,21 @@ public class LifecycleMvcAutoConfigurationTests {
}
private void endpointDisabled(String enabledProp, String beanName) {
try (ConfigurableApplicationContext context = getApplicationContext(Config.class, "server.port=0", enabledProp +"=false")) {
EndpointMvcAdapter endpoint = context.getBean(beanName, EndpointMvcAdapter.class);
try (ConfigurableApplicationContext context = getApplicationContext(Config.class,
"server.port=0", enabledProp + "=false")) {
EndpointMvcAdapter endpoint = context.getBean(beanName,
EndpointMvcAdapter.class);
Object result = endpoint.invoke();
assertThat("result is wrong type", result, is(instanceOf(ResponseEntity.class)));
ResponseEntity response = (ResponseEntity) result;
assertThat("response code was wrong", response.getStatusCode(), equalTo(HttpStatus.NOT_FOUND));
assertThat("result is wrong type", result,
is(instanceOf(ResponseEntity.class)));
ResponseEntity<?> response = (ResponseEntity<?>) result;
assertThat("response code was wrong", response.getStatusCode(),
equalTo(HttpStatus.NOT_FOUND));
}
}
private static ConfigurableApplicationContext getApplicationContext(Class<?> configuration, String... properties) {
private static ConfigurableApplicationContext getApplicationContext(
Class<?> configuration, String... properties) {
return new SpringApplicationBuilder(configuration).properties(properties).run();
}