diff options
author | Morten Tokle <mortent@yahooinc.com> | 2022-08-05 11:03:56 +0200 |
---|---|---|
committer | Morten Tokle <mortent@yahooinc.com> | 2022-08-05 11:03:56 +0200 |
commit | 3ee3eb39eb8155a3a339ca959c3619c10e67babb (patch) | |
tree | 1a93dfc6375771f1984194c5084f71815b1e343b | |
parent | f2aa09101b6edf726f01141c12e77ddb1d1a8f9e (diff) |
Read approved attribute
-rw-r--r-- | vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/DefaultZmsClient.java | 4 | ||||
-rw-r--r-- | vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/MembershipEntity.java | 20 |
2 files changed, 13 insertions, 11 deletions
diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/DefaultZmsClient.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/DefaultZmsClient.java index 7f16505c500..d7ef20c31c8 100644 --- a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/DefaultZmsClient.java +++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/DefaultZmsClient.java @@ -150,7 +150,7 @@ public class DefaultZmsClient extends ClientBase implements ZmsClient { @Override public void addRoleMember(AthenzRole role, AthenzIdentity member, Optional<String> reason) { URI uri = zmsUrl.resolve(String.format("domain/%s/role/%s/member/%s", role.domain().getName(), role.roleName(), member.getFullName())); - MembershipEntity membership = new MembershipEntity.RoleMembershipEntity(member.getFullName(), true, role.roleName(), null); + MembershipEntity membership = new MembershipEntity.RoleMembershipEntity(member.getFullName(), true, role.roleName(), null, true); RequestBuilder requestBuilder = RequestBuilder.put(uri) @@ -176,7 +176,7 @@ public class DefaultZmsClient extends ClientBase implements ZmsClient { .build(); return execute(request, response -> { MembershipEntity membership = readEntity(response, MembershipEntity.GroupMembershipEntity.class); - return membership.isMember; + return membership.isMember && membership.approved; }); } diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/MembershipEntity.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/MembershipEntity.java index dcffe006112..ef97fb02bfa 100644 --- a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/MembershipEntity.java +++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/MembershipEntity.java @@ -17,14 +17,17 @@ public class MembershipEntity { public final String memberName; public final boolean isMember; public final String expiration; + public final boolean approved; @JsonCreator public MembershipEntity(@JsonProperty("memberName") String memberName, @JsonProperty("isMember") boolean isMember, - @JsonProperty("expiration") String expiration) { + @JsonProperty("expiration") String expiration, + @JsonProperty("approved") boolean approved) { this.memberName = memberName; this.isMember = isMember; this.expiration = expiration; + this.approved = approved; } @JsonGetter("memberName") @@ -49,8 +52,9 @@ public class MembershipEntity { public RoleMembershipEntity(@JsonProperty("memberName") String memberName, @JsonProperty("isMember") boolean isMember, @JsonProperty("roleName") String roleName, - @JsonProperty("expiration") String expiration) { - super(memberName, isMember, expiration); + @JsonProperty("expiration") String expiration, + @JsonProperty("approved") boolean approved) { + super(memberName, isMember, expiration, approved); this.roleName = roleName; } @@ -62,16 +66,13 @@ public class MembershipEntity { } public static class RoleMembershipDecisionEntity extends RoleMembershipEntity { - public final boolean approved; - @JsonCreator public RoleMembershipDecisionEntity(@JsonProperty("memberName") String memberName, @JsonProperty("isMember") boolean isMember, @JsonProperty("roleName") String roleName, @JsonProperty("expiration") String expiration, @JsonProperty("approved") boolean approved) { - super(memberName, isMember, roleName, expiration); - this.approved = approved; + super(memberName, isMember, roleName, expiration, approved); } } @@ -83,8 +84,9 @@ public class MembershipEntity { public GroupMembershipEntity(@JsonProperty("memberName") String memberName, @JsonProperty("isMember") boolean isMember, @JsonProperty("groupName") String groupName, - @JsonProperty("expiration") String expiration) { - super(memberName, isMember, expiration); + @JsonProperty("expiration") String expiration, + @JsonProperty("approved") boolean approved) { + super(memberName, isMember, expiration, approved); this.groupName = groupName; } |