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-02-03 12:05:21 +0100
commita04935fd04c3bf6ef4c6e49b66e71293dc5b8b51 (patch)
tree52a6ca9bff08183d5ba3242e5cbcbf2b0eabefa8 /vespa-athenz
parent848db39659f58d751ec2ccf0d910a2ec8cad2eb6 (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 6793d5804c7..81525918f03 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
@@ -43,7 +43,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) {