Return null on absent Policy via VaultSysTemplate.getPolicy(…).
We now return null if a policy was not found. Previously, a VaultException was thrown. Closes gh-202.
This commit is contained in:
@@ -216,11 +216,19 @@ public class VaultSysTemplate implements VaultSysOperations {
|
||||
|
||||
return vaultOperations.doWithSession(restOperations -> {
|
||||
|
||||
ResponseEntity<VaultResponse> response = restOperations.getForEntity(
|
||||
"sys/policy/{name}", VaultResponse.class, name);
|
||||
ResponseEntity<VaultResponse> response;
|
||||
|
||||
if (response.getStatusCode() == HttpStatus.NOT_FOUND) {
|
||||
return null;
|
||||
try {
|
||||
response = restOperations.getForEntity("sys/policy/{name}",
|
||||
VaultResponse.class, name);
|
||||
}
|
||||
catch (HttpStatusCodeException e) {
|
||||
|
||||
if (e.getStatusCode() == HttpStatus.NOT_FOUND) {
|
||||
return null;
|
||||
}
|
||||
|
||||
throw e;
|
||||
}
|
||||
|
||||
String rules = (String) response.getBody().getRequiredData().get("rules");
|
||||
|
||||
@@ -153,6 +153,16 @@ public class VaultSysTemplateIntegrationTests extends IntegrationTestSupport {
|
||||
assertThat(root).isEqualTo(Policy.empty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldReadAbsentRootPolicy() {
|
||||
|
||||
assumeTrue(vaultVersion.isGreaterThanOrEqualTo(Version.parse("0.6.1")));
|
||||
|
||||
Policy root = adminOperations.getPolicy("absent-policy");
|
||||
|
||||
assertThat(root).isNull();
|
||||
}
|
||||
|
||||
@Test(expected = UnsupportedOperationException.class)
|
||||
public void shouldReadDefaultPolicy() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user