Polishing.

Expose factory methods for easier capabilities creation.

See gh-575.
This commit is contained in:
Mark Paluch
2020-08-11 12:12:01 +02:00
parent 225c5ed012
commit 2b11b9dbb1
2 changed files with 35 additions and 1 deletions

View File

@@ -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<Capability> 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<Capability> crudAndSudo() {
return Arrays.asList(CREATE, READ, UPDATE, DELETE, LIST, SUDO);
}
}
static class PolicySerializer extends JsonSerializer<Policy> {

View File

@@ -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);
}
}