summaryrefslogtreecommitdiffstats
path: root/vespa-athenz
diff options
context:
space:
mode:
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;
}