JCR_VERSION_MANAGEMENT, JCR_LOCK_MANAGEMENT, JCR_LIFECYCLE_MANAGEMENT,
JCR_RETENTION_MANAGEMENT, JCR_WORKSPACE_MANAGEMENT, JCR_NODE_TYPE_DEFINITION_MANAGEMENT,
JCR_NAMESPACE_MANAGEMENT, REP_PRIVILEGE_MANAGEMENT, REP_USER_MANAGEMENT,
REP_INDEX_DEFINITION_MANAGEMENT, JCR_READ, JCR_MODIFY_PROPERTIES, JCR_WRITE, REP_WRITE});
JackrabbitSession session = createAdminSession();
try {
JackrabbitWorkspace workspace = (JackrabbitWorkspace) session.getWorkspace();
PrivilegeManager manager = workspace.getPrivilegeManager();
Privilege[] privileges = manager.getRegisteredPrivileges();
for (Privilege privilege : privileges) {
if (privilege.isAggregate()) {
String[] expected = aggregatePrivileges.remove(privilege.getName());
if (expected != null) {
String[] actual = getNames(privilege.getAggregatePrivileges());
assertTrue("Miss match in aggregate privilege " + privilege.getName() +
" expected " + Arrays.toString(expected) +
" actual " + Arrays.toString(actual),
newHashSet(expected).equals(newHashSet(actual)));
}
} else {
nonAggregatePrivileges.remove(privilege.getName());
}
}
assertTrue("Missing non aggregate privileges: " + nonAggregatePrivileges,
nonAggregatePrivileges.isEmpty());
assertTrue("Missing aggregate privileges: " + aggregatePrivileges.keySet(),
aggregatePrivileges.isEmpty());
}
finally {
session.logout();
}
}