From 2b11b9dbb1312251d5ab277322d5fd5a82d6d7b0 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 11 Aug 2020 12:12:01 +0200 Subject: [PATCH] Polishing. Expose factory methods for easier capabilities creation. See gh-575. --- .../springframework/vault/support/Policy.java | 22 ++++++++++++++++++- .../support/PolicySerializationUnitTests.java | 14 ++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/Policy.java b/spring-vault-core/src/main/java/org/springframework/vault/support/Policy.java index 6ec4f6ee..8a748552 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/Policy.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/Policy.java @@ -546,7 +546,6 @@ public class Policy { /** * Deprecated: Previous capability literal before it was split into * {@link #CREATE} and {@link #UPDATE}. - * * @deprecated since 2.3 and Vault 0.5. */ @Deprecated @@ -595,6 +594,27 @@ public class Policy { return null; } + /** + * Return all capabilities ({@link #CREATE},{@link #READ},{@link #UPDATE}, + * {@link #DELETE}, {@link #LIST}) for regular CRUD operations. + * @return all CRUD operations. + * @since 2.3 + */ + public static List crud() { + return Arrays.asList(CREATE, READ, UPDATE, DELETE, LIST); + } + + /** + * Return all capabilities ({@link #CREATE},{@link #READ},{@link #UPDATE}, + * {@link #DELETE}, {@link #LIST}) for regular CRUD operations including + * {@link #SUDO}. + * @return all CRUD operations including SUDO. + * @since 2.3 + */ + public static List crudAndSudo() { + return Arrays.asList(CREATE, READ, UPDATE, DELETE, LIST, SUDO); + } + } static class PolicySerializer extends JsonSerializer { diff --git a/spring-vault-core/src/test/java/org/springframework/vault/support/PolicySerializationUnitTests.java b/spring-vault-core/src/test/java/org/springframework/vault/support/PolicySerializationUnitTests.java index 4ce19f77..91d7d955 100644 --- a/spring-vault-core/src/test/java/org/springframework/vault/support/PolicySerializationUnitTests.java +++ b/spring-vault-core/src/test/java/org/springframework/vault/support/PolicySerializationUnitTests.java @@ -129,4 +129,18 @@ class PolicySerializationUnitTests { assertThat(rule.getMinWrappingTtl()).isEqualTo(Duration.ofHours(1)); } + @Test + void crudShouldReturnCrudCapabilities() { + + assertThat(Policy.BuiltinCapabilities.crud()).hasSize(5).contains(Policy.BuiltinCapabilities.CREATE) + .doesNotContain(Policy.BuiltinCapabilities.SUDO); + } + + @Test + void sudoShouldReturnCrudAndSudoCapabilities() { + + assertThat(Policy.BuiltinCapabilities.crudAndSudo()).hasSize(6).contains(Policy.BuiltinCapabilities.CREATE) + .contains(Policy.BuiltinCapabilities.SUDO); + } + }