summaryrefslogtreecommitdiffstats
path: root/vespa-athenz
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2022-03-17 14:08:59 +0100
committerOla Aunrønning <olaa@verizonmedia.com>2022-03-17 14:08:59 +0100
commitdcd70dc2889c0463f55bf0bebdf5e78488021e5f (patch)
tree7f06f51ea3ec19b2dff59f6cdea66ce52ce06527 /vespa-athenz
parent90cdd84b93c368774fa8f30d726c4029ef0638ac (diff)
Membership decision includes 'approved' field. Only trigger athenz sync on approval
Diffstat (limited to 'vespa-athenz')
-rw-r--r--vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/DefaultZmsClient.java2
-rw-r--r--vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/MembershipEntity.java15
2 files changed, 16 insertions, 1 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 a6d18f3167c..136ae1df8ae 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
@@ -306,7 +306,7 @@ public class DefaultZmsClient extends ClientBase implements ZmsClient {
public void decidePendingRoleMembership(AthenzRole athenzRole, AthenzIdentity athenzIdentity, Instant expiry,
Optional<String> reason, Optional<OAuthCredentials> oAuthCredentials, boolean approve) {
URI uri = zmsUrl.resolve(String.format("domain/%s/role/%s/member/%s/decision", athenzRole.domain().getName(), athenzRole.roleName(), athenzIdentity.getFullName()));
- MembershipEntity membership = new MembershipEntity.RoleMembershipEntity(athenzIdentity.getFullName(), approve, athenzRole.roleName(), Long.toString(expiry.getEpochSecond()));
+ var membership = new MembershipEntity.RoleMembershipDecisionEntity(athenzIdentity.getFullName(), approve, athenzRole.roleName(), Long.toString(expiry.getEpochSecond()), approve);
var requestBuilder = RequestBuilder.put()
.setUri(uri)
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 d679433a23d..dcffe006112 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
@@ -61,6 +61,21 @@ 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;
+ }
+
+ }
+
public static class GroupMembershipEntity extends MembershipEntity {
public final String groupName;