diff --git a/servers/zms/src/main/java/com/yahoo/athenz/zms/ZMSImpl.java b/servers/zms/src/main/java/com/yahoo/athenz/zms/ZMSImpl.java index 79004444f5b..7195f69f40e 100644 --- a/servers/zms/src/main/java/com/yahoo/athenz/zms/ZMSImpl.java +++ b/servers/zms/src/main/java/com/yahoo/athenz/zms/ZMSImpl.java @@ -4584,11 +4584,6 @@ void validateRoleStructure(final Role role, final String domainName, final Strin if (!StringUtil.isEmpty(role.getTrust())) { - AthenzDomain athenzDomain = getAthenzDomain(role.getTrust(), true); - if (athenzDomain == null) { - throw ZMSUtils.requestError("Delegated role assigned to non existing domain", caller); - } - if (!ZMSUtils.isCollectionEmpty(role.getRoleMembers())) { throw ZMSUtils.requestError("validateRoleMembers: Role cannot have both roleMembers and delegated domain set", caller); } @@ -4600,6 +4595,10 @@ void validateRoleStructure(final Role role, final String domainName, final Strin if (domainName.equals(role.getTrust())) { throw ZMSUtils.requestError("validateRoleMembers: Role cannot be delegated to itself", caller); } + + if (getAthenzDomain(role.getTrust(), true) == null) { + throw ZMSUtils.requestError("Delegated role assigned to non existing domain", caller); + } } }