aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorten Tokle <mortent@yahooinc.com>2022-08-05 11:03:56 +0200
committerMorten Tokle <mortent@yahooinc.com>2022-08-05 11:03:56 +0200
commit3ee3eb39eb8155a3a339ca959c3619c10e67babb (patch)
tree1a93dfc6375771f1984194c5084f71815b1e343b
parentf2aa09101b6edf726f01141c12e77ddb1d1a8f9e (diff)
Read approved attribute
-rw-r--r--vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/DefaultZmsClient.java4
-rw-r--r--vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/MembershipEntity.java20
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;
}