correctly map token policies on lookup (close #35)

Remove superfluous "role" flag and add "policies" list instead.
This commit is contained in:
Stefan Kalscheuer 2020-03-29 13:58:32 +02:00
parent d564ba9365
commit 83a05fcd40
4 changed files with 18 additions and 10 deletions

View File

@ -2,6 +2,7 @@
### Fixes ### Fixes
* Correctly parse Map field for token metadata (#34) * Correctly parse Map field for token metadata (#34)
* Correctly map token policies on lookup (#35)
### Improvements ### Improvements
* Minor dependency updates * Minor dependency updates

View File

@ -19,13 +19,14 @@ package de.stklcode.jvault.connector.model.response.embedded;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* Embedded token information inside Vault response. * Embedded token information inside Vault response.
* *
* @author Stefan Kalscheuer * @author Stefan Kalscheuer
* @since 0.1 * @since 0.1
*/ */
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public final class TokenData { public final class TokenData {
@ -56,8 +57,8 @@ public final class TokenData {
@JsonProperty("path") @JsonProperty("path")
private String path; private String path;
@JsonProperty("role") @JsonProperty("policies")
private String role; private List<String> policies;
@JsonProperty("ttl") @JsonProperty("ttl")
private Integer ttl; private Integer ttl;
@ -119,10 +120,11 @@ public final class TokenData {
} }
/** /**
* @return Token role * @return Token policies
* @since 0.9
*/ */
public String getRole() { public List<String> getPolicies() {
return role; return policies;
} }
/** /**

View File

@ -41,7 +41,8 @@ import static org.hamcrest.Matchers.*;
import static org.hamcrest.core.Is.is; import static org.hamcrest.core.Is.is;
import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.fail; import static org.junit.jupiter.api.Assertions.fail;
import static org.junit.jupiter.api.Assumptions.*; import static org.junit.jupiter.api.Assumptions.assumeFalse;
import static org.junit.jupiter.api.Assumptions.assumeTrue;
/** /**
* JUnit test for HTTP Vault connector. * JUnit test for HTTP Vault connector.
@ -1128,6 +1129,8 @@ public class HTTPVaultConnectorTest {
try { try {
TokenResponse res = connector.lookupToken("my-token"); TokenResponse res = connector.lookupToken("my-token");
assertThat("Unexpected token ID", res.getData().getId(), is(token.getId())); assertThat("Unexpected token ID", res.getData().getId(), is(token.getId()));
assertThat("Unexpected number of policies", res.getData().getPolicies(), hasSize(1));
assertThat("Unexpected policy", res.getData().getPolicies(), contains("root"));
} catch (VaultConnectorException e) { } catch (VaultConnectorException e) {
fail("Token creation failed."); fail("Token creation failed.");
} }

View File

@ -117,8 +117,10 @@ public class TokenResponseTest {
assertThat("Incorrect token number of uses", data.getNumUses(), is(TOKEN_NUM_USES)); assertThat("Incorrect token number of uses", data.getNumUses(), is(TOKEN_NUM_USES));
assertThat("Incorrect token orphan flag", data.isOrphan(), is(TOKEN_ORPHAN)); assertThat("Incorrect token orphan flag", data.isOrphan(), is(TOKEN_ORPHAN));
assertThat("Incorrect token path", data.getPath(), is(TOKEN_PATH)); assertThat("Incorrect token path", data.getPath(), is(TOKEN_PATH));
assertThat("Incorrect auth metadata size", data.getMeta().entrySet(), hasSize(1)); assertThat("Incorrect token metadata size", data.getMeta().entrySet(), hasSize(1));
assertThat("Incorrect auth metadata", data.getMeta().get(TOKEN_META_KEY), is(TOKEN_META_VALUE)); assertThat("Incorrect token metadata", data.getMeta().get(TOKEN_META_KEY), is(TOKEN_META_VALUE));
assertThat("Incorrect number of token policies", data.getPolicies(), hasSize(2));
assertThat("Incorrect token policies", data.getPolicies(), contains(TOKEN_POLICY_1, TOKEN_POLICY_2));
assertThat("Incorrect response renewable flag", res.isRenewable(), is(RES_RENEWABLE)); assertThat("Incorrect response renewable flag", res.isRenewable(), is(RES_RENEWABLE));
assertThat("Incorrect response TTL", data.getTtl(), is(RES_TTL)); assertThat("Incorrect response TTL", data.getTtl(), is(RES_TTL));
assertThat("Incorrect response lease duration", res.getLeaseDuration(), is(RES_LEASE_DURATION)); assertThat("Incorrect response lease duration", res.getLeaseDuration(), is(RES_LEASE_DURATION));