Allow /health and /info to authenticate anonymously

Then we can optionally find a non-anonymous principal if there
is one. If the user is anonymous then the health result is cached
up to endpoints.health.ttl (default 1000ms) to prevent a DOS attack.

Fixes gh-1353
This commit is contained in:
Dave Syer
2014-10-27 13:11:13 +00:00
parent 43eda4ce5d
commit 24e71e868f
12 changed files with 191 additions and 38 deletions

View File

@@ -132,6 +132,17 @@ public class SampleActuatorApplicationTests {
assertEquals(HttpStatus.OK, entity.getStatusCode());
assertTrue("Wrong body: " + entity.getBody(),
entity.getBody().contains("\"status\":\"UP\""));
assertFalse("Wrong body: " + entity.getBody(),
entity.getBody().contains("\"hello\":\"1\""));
}
@Test
public void testSecureHealth() throws Exception {
ResponseEntity<String> entity = new TestRestTemplate("user", getPassword()).getForEntity(
"http://localhost:" + this.port + "/health", String.class);
assertEquals(HttpStatus.OK, entity.getStatusCode());
assertTrue("Wrong body: " + entity.getBody(),
entity.getBody().contains("\"hello\":1"));
}
@Test