diff --git a/README.md b/README.md index 25909a4..5f8563c 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Java Vault Connector is a connector library for [Vault](https://www.vaultproject * Write secrets * List secrets * Connector Factory with builder pattern -* Tested against Vault 0.5.2 +* Tested against Vault 0.6.0 **Usage Example** diff --git a/src/main/java/de/stklcode/jvault/connector/HTTPVaultConnector.java b/src/main/java/de/stklcode/jvault/connector/HTTPVaultConnector.java index e9c3286..0be52bd 100644 --- a/src/main/java/de/stklcode/jvault/connector/HTTPVaultConnector.java +++ b/src/main/java/de/stklcode/jvault/connector/HTTPVaultConnector.java @@ -381,7 +381,14 @@ public class HTTPVaultConnector implements VaultConnector { InvalidResponseException ex = new InvalidResponseException("Invalid response code") .withStatusCode(response.getStatusLine().getStatusCode()); try { - throw ex.withResponse(IOUtils.toString(response.getEntity().getContent())); + /* Try to parse error response */ + ErrorResponse er = jsonMapper.readValue(IOUtils.toString(response.getEntity().getContent()), + ErrorResponse.class); + /* Check for "permission denied" response */ + if (er.getErrors().size() > 0 && er.getErrors().get(0).equals("permission denied")) + throw new PermissionDeniedException(); + + throw ex.withResponse(er.toString()); } catch (IOException e) { throw ex;