summaryrefslogtreecommitdiffstats
path: root/vespa-athenz
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2020-01-31 11:18:04 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2020-01-31 11:18:04 +0100
commit045cb0fa8fb519f7470f2f63c5c0e6884d63b3b0 (patch)
treeba24d5213bee277032a9f703be807a20ff139728 /vespa-athenz
parent959960a0e24d33a22d360468834cb4e41fa145c5 (diff)
Improve naming of string conversion methods for AthenzRole
Diffstat (limited to 'vespa-athenz')
-rw-r--r--vespa-athenz/src/main/java/com/yahoo/vespa/athenz/api/AthenzRole.java23
-rw-r--r--vespa-athenz/src/main/java/com/yahoo/vespa/athenz/tls/AthenzX509CertificateUtils.java2
2 files changed, 15 insertions, 10 deletions
diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/api/AthenzRole.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/api/AthenzRole.java
index a7c9dbff3f8..4e432768298 100644
--- a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/api/AthenzRole.java
+++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/api/AthenzRole.java
@@ -7,7 +7,7 @@ import java.util.Objects;
* @author tokle
*/
public class AthenzRole {
- private static final String DOMAIN_ROLE_NAME_DELIMITER = ":role.";
+ private static final String ROLE_RESOURCE_PREFIX = "role.";
private final AthenzDomain domain;
private final String roleName;
@@ -22,14 +22,17 @@ public class AthenzRole {
this.roleName = roleName;
}
- public static AthenzRole fromString(String string) {
- if (!string.contains(DOMAIN_ROLE_NAME_DELIMITER)) {
- throw new IllegalArgumentException("Not a valid role: " + string);
+ public static AthenzRole fromResourceNameString(String string) {
+ return fromResourceName(AthenzResourceName.fromString(string));
+ }
+
+ public static AthenzRole fromResourceName(AthenzResourceName resourceName) {
+ String entityName = resourceName.getEntityName();
+ if (!entityName.startsWith(ROLE_RESOURCE_PREFIX)) {
+ throw new IllegalArgumentException("Not a valid role: " + resourceName.toResourceNameString());
}
- int delimiterIndex = string.indexOf(DOMAIN_ROLE_NAME_DELIMITER);
- String domain = string.substring(0, delimiterIndex);
- String roleName = string.substring(delimiterIndex + DOMAIN_ROLE_NAME_DELIMITER.length());
- return new AthenzRole(domain, roleName);
+ String roleName = entityName.substring(ROLE_RESOURCE_PREFIX.length());
+ return new AthenzRole(resourceName.getDomain(), roleName);
}
public AthenzDomain domain() {
@@ -40,7 +43,9 @@ public class AthenzRole {
return roleName;
}
- public String asString() { return domain.getName() + DOMAIN_ROLE_NAME_DELIMITER + roleName; }
+ public String toResourceNameString() { return toResourceName().toResourceNameString(); }
+
+ public AthenzResourceName toResourceName() { return new AthenzResourceName(domain, ROLE_RESOURCE_PREFIX + roleName); }
@Override
public boolean equals(Object o) {
diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/tls/AthenzX509CertificateUtils.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/tls/AthenzX509CertificateUtils.java
index a555f955962..bec21a5b25f 100644
--- a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/tls/AthenzX509CertificateUtils.java
+++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/tls/AthenzX509CertificateUtils.java
@@ -31,7 +31,7 @@ public class AthenzX509CertificateUtils {
public static AthenzRole getRolesFromRoleCertificate(X509Certificate certificate) {
String commonName = com.yahoo.security.X509CertificateUtils.getSubjectCommonNames(certificate).get(0);
- return AthenzRole.fromString(commonName);
+ return AthenzRole.fromResourceNameString(commonName);
}
private static AthenzIdentity getIdentityFromSanEmail(String email) {