aboutsummaryrefslogtreecommitdiffstats
path: root/vespa-athenz
diff options
context:
space:
mode:
authorMorten Tokle <mortent@verizonmedia.com>2022-02-02 22:59:27 +0100
committerMorten Tokle <mortent@verizonmedia.com>2022-02-04 08:17:33 +0100
commit79fc46bf80ef3538ec46587e21089cbda288f875 (patch)
treea6a0a2daf513590ef81ff161fa05ff9724830908 /vespa-athenz
parentf85257c7cac1c230d56671bb979ee590c99680f1 (diff)
Read policy from resource name
Diffstat (limited to 'vespa-athenz')
-rw-r--r--vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/PolicyEntity.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/PolicyEntity.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/PolicyEntity.java
index 4be82daee43..84d522ee85d 100644
--- a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/PolicyEntity.java
+++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zms/bindings/PolicyEntity.java
@@ -6,12 +6,15 @@ import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* @author olaa
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public class PolicyEntity {
+ private static final Pattern namePattern = Pattern.compile("^(?<domain>[^:]+):policy\\.(?<name>.*)$");
@JsonInclude(JsonInclude.Include.NON_EMPTY)
private final List<AssertionEntity> assertions;
@@ -19,10 +22,17 @@ public class PolicyEntity {
public PolicyEntity(@JsonProperty("name") String name,
@JsonProperty("assertions") List<AssertionEntity> assertions) {
- this.name = name;
+ this.name = nameFromResourceString(name);
this.assertions = assertions;
}
+ private static String nameFromResourceString(String resource) {
+ Matcher matcher = namePattern.matcher(resource);
+ if (!matcher.matches())
+ throw new IllegalArgumentException("Could not find policy name from resource string: " + resource);
+ return matcher.group("name");
+ }
+
public String getName() {
return name;
}