Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -829,7 +829,7 @@ public static void verifyGroupMembersDeleteResourceOwnership(Group group, final
verifyDeleteResourceOwnership(resourceOwner, resourceOwnership.getMembersOwner(), caller);
}

public static void verifyDeleteResourceOwnership(final String resourceOwner, final String objectOwner,
public static void verifyDeleteResourceOwnership(String resourceOwner, final String objectOwner,
final String caller) throws ServerResourceException {

// first check if we're explicitly asked to ignore the check
Expand All @@ -839,6 +839,10 @@ public static void verifyDeleteResourceOwnership(final String resourceOwner, fin
return;
}

// if the current resource owner includes the force suffix then we need to drop it and
// then do the match
resourceOwner = getResourceOwnershipWithoutForceSuffix(resourceOwner, !StringUtil.isEmpty(resourceOwner));

// at this point we have an object owner so the value must match
// otherwise we'll throw a conflict error exception

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -274,18 +274,52 @@ public void testVerifyDeleteResourceObjectOwnership() throws ServerResourceExcep
ResourceOwnership.verifyRoleDeleteResourceOwnership(new Role(), "resourceOwner", "unit-test");
ResourceOwnership.verifyRoleDeleteResourceOwnership(new Role()
.setResourceOwnership(new ResourceRoleOwnership()), "resourceOwner", "unit-test");
ResourceOwnership.verifyRoleDeleteResourceOwnership(new Role()
.setResourceOwnership(new ResourceRoleOwnership().setObjectOwner("A")), "A:force", "unit-test");
try {
ResourceOwnership.verifyRoleDeleteResourceOwnership(new Role()
.setResourceOwnership(new ResourceRoleOwnership().setObjectOwner("A")), "B:force", "unit-test");
fail();
}catch (ServerResourceException ignored) {

}

ResourceOwnership.verifyPolicyDeleteResourceOwnership(new Policy(), "resourceOwner", "unit-test");
ResourceOwnership.verifyPolicyDeleteResourceOwnership(new Policy()
.setResourceOwnership(new ResourcePolicyOwnership()), "resourceOwner", "unit-test");
ResourceOwnership.verifyPolicyDeleteResourceOwnership(new Policy()
.setResourceOwnership(new ResourcePolicyOwnership().setObjectOwner("A")), "A:force", "unit-test");
try {
ResourceOwnership.verifyPolicyDeleteResourceOwnership(new Policy()
.setResourceOwnership(new ResourcePolicyOwnership().setObjectOwner("A")), "B:force", "unit-test");
fail();
} catch (ServerResourceException ignored) {
}


ResourceOwnership.verifyGroupDeleteResourceOwnership(new Group(), "resourceOwner", "unit-test");
ResourceOwnership.verifyGroupDeleteResourceOwnership(new Group()
.setResourceOwnership(new ResourceGroupOwnership()), "resourceOwner", "unit-test");
ResourceOwnership.verifyGroupDeleteResourceOwnership(new Group()
.setResourceOwnership(new ResourceGroupOwnership().setObjectOwner("A")), "A:force", "unit-test");
try {
ResourceOwnership.verifyGroupDeleteResourceOwnership(new Group()
.setResourceOwnership(new ResourceGroupOwnership().setObjectOwner("A")), "B:force", "unit-test");
fail();
} catch (ServerResourceException ignored) {
}

ResourceOwnership.verifyServiceDeleteResourceOwnership(new ServiceIdentity(), "resourceOwner", "unit-test");
ResourceOwnership.verifyServiceDeleteResourceOwnership(new ServiceIdentity()
.setResourceOwnership(new ResourceServiceIdentityOwnership()), "resourceOwner", "unit-test");
ResourceOwnership.verifyServiceDeleteResourceOwnership(new ServiceIdentity()
.setResourceOwnership(new ResourceServiceIdentityOwnership().setObjectOwner("A")), "A:force", "unit-test");
try {
ResourceOwnership.verifyServiceDeleteResourceOwnership(new ServiceIdentity()
.setResourceOwnership(new ResourceServiceIdentityOwnership().setObjectOwner("A")), "B:force", "unit-test");
fail();
} catch (ServerResourceException ignored) {
}
}

@Test
Expand Down