add missing fields to token data
* entity_id * expire_time * explicit_max_ttl * issue_time * renewable * type
This commit is contained in:
parent
a4a0e13904
commit
8f10bbfed7
@ -9,6 +9,7 @@
|
||||
|
||||
### Improvements
|
||||
* Added `entity_id`, `token_policies`, `token_type` and `orphan` flags to auth response
|
||||
* Added `entity_id`, `expire_time`, `explicit_max_ttl`, `issue_time`, `renewable` and `type` flags to token data
|
||||
* Minor dependency updates
|
||||
|
||||
|
||||
|
@ -19,6 +19,7 @@ package de.stklcode.jvault.connector.model.response.embedded;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@ -42,11 +43,20 @@ public final class TokenData {
|
||||
@JsonProperty("display_name")
|
||||
private String name;
|
||||
|
||||
@JsonProperty("entity_id")
|
||||
private String entityId;
|
||||
|
||||
@JsonProperty("expire_time")
|
||||
private String expireTime;
|
||||
|
||||
@JsonProperty("explicit_max_ttl")
|
||||
private Integer explicitMaxTtl;
|
||||
|
||||
@JsonProperty("id")
|
||||
private String id;
|
||||
|
||||
@JsonProperty("type")
|
||||
private String type;
|
||||
@JsonProperty("issue_time")
|
||||
private String issueTime;
|
||||
|
||||
@JsonProperty("meta")
|
||||
private Map<String, Object> meta;
|
||||
@ -63,9 +73,15 @@ public final class TokenData {
|
||||
@JsonProperty("policies")
|
||||
private List<String> policies;
|
||||
|
||||
@JsonProperty("renewable")
|
||||
private boolean renewable;
|
||||
|
||||
@JsonProperty("ttl")
|
||||
private Integer ttl;
|
||||
|
||||
@JsonProperty("type")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* @return Token accessor
|
||||
*/
|
||||
@ -94,6 +110,42 @@ public final class TokenData {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Entity ID
|
||||
* @since 0.9
|
||||
*/
|
||||
public String getEntityId() {
|
||||
return entityId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Expire time as raw string value
|
||||
* @since 0.9
|
||||
*/
|
||||
public String getExpireTimeString() {
|
||||
return expireTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Expire time (parsed)
|
||||
* @since 0.9
|
||||
*/
|
||||
public ZonedDateTime getExpireTime() {
|
||||
if (expireTime == null) {
|
||||
return null;
|
||||
} else {
|
||||
return ZonedDateTime.parse(expireTime);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Explicit maximum TTL
|
||||
* @since 0.9
|
||||
*/
|
||||
public Integer getExplicitMaxTtl() {
|
||||
return explicitMaxTtl;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Token ID
|
||||
*/
|
||||
@ -101,6 +153,26 @@ public final class TokenData {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Issue time as raw string value
|
||||
* @since 0.9
|
||||
*/
|
||||
public String getIssueTimeString() {
|
||||
return issueTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Expire time (parsed)
|
||||
* @since 0.9
|
||||
*/
|
||||
public ZonedDateTime getIssueTime() {
|
||||
if (issueTime == null) {
|
||||
return null;
|
||||
} else {
|
||||
return ZonedDateTime.parse(issueTime);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Token type
|
||||
* @since 0.9
|
||||
@ -138,6 +210,14 @@ public final class TokenData {
|
||||
return policies;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Token is renewable
|
||||
* @since 0.9
|
||||
*/
|
||||
public boolean isRenewable() {
|
||||
return renewable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Token TTL (in seconds)
|
||||
*/
|
||||
|
@ -1158,6 +1158,7 @@ public class HTTPVaultConnectorTest {
|
||||
assertThat("Unexpected number of policies", res.getData().getPolicies(), hasSize(1));
|
||||
assertThat("Unexpected policy", res.getData().getPolicies(), contains("root"));
|
||||
assertThat("Unexpected token type", res.getData().getType(), is(token.getType()));
|
||||
assertThat("Issue time expected to be filled", res.getData().getIssueTime(), is(notNullValue()));
|
||||
} catch (VaultConnectorException e) {
|
||||
fail("Token creation failed.");
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ import de.stklcode.jvault.connector.model.response.embedded.TokenData;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@ -38,26 +39,40 @@ import static org.junit.jupiter.api.Assertions.fail;
|
||||
public class TokenResponseTest {
|
||||
private static final Integer TOKEN_CREATION_TIME = 1457533232;
|
||||
private static final Integer TOKEN_TTL = 2764800;
|
||||
private static final Integer TOKEN_EXPLICIT_MAX_TTL = 0;
|
||||
private static final String TOKEN_DISPLAY_NAME = "token";
|
||||
private static final String TOKEN_META_KEY = "foo";
|
||||
private static final String TOKEN_META_VALUE = "bar";
|
||||
private static final Integer TOKEN_NUM_USES = 0;
|
||||
private static final Boolean TOKEN_ORPHAN = false;
|
||||
private static final Boolean TOKEN_RENEWABLE = true;
|
||||
private static final String TOKEN_PATH = "auth/token/create";
|
||||
private static final String TOKEN_POLICY_1 = "default";
|
||||
private static final String TOKEN_POLICY_2 = "web";
|
||||
private static final Boolean RES_RENEWABLE = false;
|
||||
private static final Integer RES_TTL = 2591976;
|
||||
private static final Integer RES_LEASE_DURATION = 0;
|
||||
private static final String TOKEN_ACCESSOR = "VKvzT2fKHFsZFUus9LyoXCvu";
|
||||
private static final String TOKEN_ENTITY_ID = "7d2e3179-f69b-450c-7179-ac8ee8bd8ca9";
|
||||
private static final String TOKEN_EXPIRE_TIME = "2018-05-19T11:35:54.466476215-04:00";
|
||||
private static final String TOKEN_ID = "my-token";
|
||||
private static final String TOKEN_ISSUE_TIME = "2018-04-17T11:35:54.466476078-04:00";
|
||||
private static final String TOKEN_TYPE = "service";
|
||||
|
||||
private static final String RES_JSON = "{\n" +
|
||||
" \"lease_id\": \"\",\n" +
|
||||
" \"renewable\": " + RES_RENEWABLE + ",\n" +
|
||||
" \"lease_duration\": " + RES_LEASE_DURATION + ",\n" +
|
||||
" \"data\": {\n" +
|
||||
" \"accessor\": \"" + TOKEN_ACCESSOR + "\",\n" +
|
||||
" \"creation_time\": " + TOKEN_CREATION_TIME + ",\n" +
|
||||
" \"creation_ttl\": " + TOKEN_TTL + ",\n" +
|
||||
" \"display_name\": \"" + TOKEN_DISPLAY_NAME + "\",\n" +
|
||||
" \"entity_id\": \"" + TOKEN_ENTITY_ID + "\",\n" +
|
||||
" \"expire_time\": \"" + TOKEN_EXPIRE_TIME + "\",\n" +
|
||||
" \"explicit_max_ttl\": \"" + TOKEN_EXPLICIT_MAX_TTL + "\",\n" +
|
||||
" \"id\": \"" + TOKEN_ID + "\",\n" +
|
||||
" \"issue_time\": \"" + TOKEN_ISSUE_TIME + "\",\n" +
|
||||
" \"meta\": {\n" +
|
||||
" \"" + TOKEN_META_KEY + "\": \"" + TOKEN_META_VALUE + "\"\n" +
|
||||
" },\n" +
|
||||
@ -68,7 +83,9 @@ public class TokenResponseTest {
|
||||
" \"" + TOKEN_POLICY_1 + "\", \n" +
|
||||
" \"" + TOKEN_POLICY_2 + "\"\n" +
|
||||
" ],\n" +
|
||||
" \"ttl\": " + RES_TTL + "\n" +
|
||||
" \"renewable\": " + TOKEN_RENEWABLE + ",\n" +
|
||||
" \"ttl\": " + RES_TTL + ",\n" +
|
||||
" \"type\": \"" + TOKEN_TYPE + "\"\n" +
|
||||
" },\n" +
|
||||
" \"warnings\": null,\n" +
|
||||
" \"auth\": null\n" +
|
||||
@ -107,23 +124,32 @@ public class TokenResponseTest {
|
||||
TokenResponse res = new ObjectMapper().readValue(RES_JSON, TokenResponse.class);
|
||||
assertThat("Parsed response is NULL", res, is(notNullValue()));
|
||||
assertThat("Incorrect lease duration", res.getLeaseDuration(), is(RES_LEASE_DURATION));
|
||||
assertThat("Incorrect renewable status", res.isRenewable(), is(RES_RENEWABLE));
|
||||
assertThat("Incorrect response renewable flag", res.isRenewable(), is(RES_RENEWABLE));
|
||||
assertThat("Incorrect response lease duration", res.getLeaseDuration(), is(RES_LEASE_DURATION));
|
||||
// Extract token data.
|
||||
TokenData data = res.getData();
|
||||
assertThat("Token data is NULL", data, is(notNullValue()));
|
||||
assertThat("Incorrect token accessor", data.getAccessor(), is(TOKEN_ACCESSOR));
|
||||
assertThat("Incorrect token creation time", data.getCreationTime(), is(TOKEN_CREATION_TIME));
|
||||
assertThat("Incorrect token creation TTL", data.getCreationTtl(), is(TOKEN_TTL));
|
||||
assertThat("Incorrect token display name", data.getName(), is(TOKEN_DISPLAY_NAME));
|
||||
assertThat("Incorrect token entity ID", data.getEntityId(), is(TOKEN_ENTITY_ID));
|
||||
assertThat("Incorrect token expire time", data.getExpireTimeString(), is(TOKEN_EXPIRE_TIME));
|
||||
assertThat("Incorrect parsed token expire time", data.getExpireTime(), is(ZonedDateTime.parse(TOKEN_EXPIRE_TIME)));
|
||||
assertThat("Incorrect token explicit max TTL", data.getExplicitMaxTtl(), is(TOKEN_EXPLICIT_MAX_TTL));
|
||||
assertThat("Incorrect token ID", data.getId(), is(TOKEN_ID));
|
||||
assertThat("Incorrect token issue time", data.getIssueTimeString(), is(TOKEN_ISSUE_TIME));
|
||||
assertThat("Incorrect parsed token issue time", data.getIssueTime(), is(ZonedDateTime.parse(TOKEN_ISSUE_TIME)));
|
||||
assertThat("Incorrect token metadata size", data.getMeta().entrySet(), hasSize(1));
|
||||
assertThat("Incorrect token metadata", data.getMeta().get(TOKEN_META_KEY), is(TOKEN_META_VALUE));
|
||||
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 path", data.getPath(), is(TOKEN_PATH));
|
||||
assertThat("Incorrect token metadata size", data.getMeta().entrySet(), hasSize(1));
|
||||
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 TTL", data.getTtl(), is(RES_TTL));
|
||||
assertThat("Incorrect response lease duration", res.getLeaseDuration(), is(RES_LEASE_DURATION));
|
||||
assertThat("Incorrect token renewable flag", data.isRenewable(), is(TOKEN_RENEWABLE));
|
||||
assertThat("Incorrect token TTL", data.getTtl(), is(RES_TTL));
|
||||
assertThat("Incorrect token type", data.getType(), is(TOKEN_TYPE));
|
||||
} catch (IOException e) {
|
||||
fail("TokenResponse deserialization failed: " + e.getMessage());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user