summaryrefslogtreecommitdiffstats
path: root/vespa-athenz
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2022-03-15 13:49:51 +0100
committerOla Aunrønning <olaa@verizonmedia.com>2022-03-15 13:49:51 +0100
commit2dc1a2e9157f161fb1e43b429c480780bb16b2bb (patch)
tree60e8ebeb7adb1876eaa0fea842470cd25d5a82d6 /vespa-athenz
parent6d803878dd20afc1500286f0382e7077f834abaf (diff)
Include assertion effect in entity
Diffstat (limited to 'vespa-athenz')
-rw-r--r--vespa-athenz/src/main/java/com/yahoo/vespa/athenz/api/AthenzAssertion.java9
-rw-r--r--vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/DefaultZmsClient.java3
-rw-r--r--vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/AssertionEntity.java13
3 files changed, 20 insertions, 5 deletions
diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/api/AthenzAssertion.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/api/AthenzAssertion.java
index 49cc31fe8c2..a343ea6e8f0 100644
--- a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/api/AthenzAssertion.java
+++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/api/AthenzAssertion.java
@@ -10,7 +10,14 @@ import java.util.OptionalLong;
*/
public class AthenzAssertion {
- public enum Effect { ALLOW, DENY }
+ public enum Effect {
+ ALLOW, DENY;
+
+ public static Effect valueOrNull(String value) {
+ try { return valueOf(value); }
+ catch (RuntimeException e) { return null; }
+ }
+ }
private final Long id;
private final Effect effect;
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 eef833c91a7..a6d18f3167c 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
@@ -229,7 +229,7 @@ public class DefaultZmsClient extends ClientBase implements ZmsClient {
athenzDomain.getName(), athenzPolicy));
HttpUriRequest request = RequestBuilder.put()
.setUri(uri)
- .setEntity(toJsonStringEntity(new AssertionEntity(athenzRole.toResourceNameString(), resourceName.toResourceNameString(), action)))
+ .setEntity(toJsonStringEntity(new AssertionEntity(athenzRole.toResourceNameString(), resourceName.toResourceNameString(), action, "ALLOW")))
.build();
execute(request, response -> readEntity(response, Void.class));
}
@@ -281,6 +281,7 @@ public class DefaultZmsClient extends ClientBase implements ZmsClient {
AthenzResourceName.fromString(a.getResource()),
a.getAction())
.id(a.getId())
+ .effect(AthenzAssertion.Effect.valueOrNull(a.getEffect()))
.build())
.collect(toList());
return Optional.of(new AthenzPolicy(entity.getName(), assertions));
diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/AssertionEntity.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/AssertionEntity.java
index 4ef83760b5a..f0fe383a55b 100644
--- a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/AssertionEntity.java
+++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/AssertionEntity.java
@@ -17,20 +17,23 @@ public class AssertionEntity {
private final String resource;
private final String action;
private final Long id;
+ private final String effect;
- public AssertionEntity(String role, String resource, String action) {
- this(role, resource, action, null);
+ public AssertionEntity(String role, String resource, String action, String effect) {
+ this(role, resource, action, null, effect);
}
public AssertionEntity(@JsonProperty("role") String role,
@JsonProperty("resource") String resource,
@JsonProperty("action") String action,
- @JsonProperty("id") Long id) {
+ @JsonProperty("id") Long id,
+ @JsonProperty("effect") String effect) {
this.role = role;
this.resource = resource;
this.action = action;
this.id = id;
+ this.effect = effect;
}
public String getRole() {
@@ -45,6 +48,10 @@ public class AssertionEntity {
return action;
}
+ public String getEffect() {
+ return effect;
+ }
+
@JsonIgnore
public long getId() {
return id;