Set<String> sysRoles = new HashSet<String>();
for (String role : rawAuthorization.getRoles()) {
Authorization auth = systemRoles.getAuthorization((User) userAdmin.getRole(role));
- sysRoles.addAll(Arrays.asList(auth.getRoles()));
+ systemRoles:for(String systemRole:auth.getRoles()) {
+ if(role.equals(systemRole))
+ continue systemRoles;
+ sysRoles.add(systemRole);
+ }
+// sysRoles.addAll(Arrays.asList(auth.getRoles()));
}
addAbstractSystemRoles(rawAuthorization, sysRoles);
Authorization authorization = new AggregatingAuthorization(usernameToUse, displayNameToUse, sysRoles,
return tokens;
List<UserAdmin> res = new ArrayList<UserAdmin>(1);
for (LdapName baseDn : businessRoles.keySet()) {
+ AbstractUserDirectory ud = businessRoles.get(baseDn);
if (name.startsWith(baseDn)) {
- AbstractUserDirectory ud = businessRoles.get(baseDn);
if (!ud.isDisabled())
res.add(ud);
}
+// Object principal = ud.getProperties().get(Context.SECURITY_PRINCIPAL);
+// if (principal != null) {
+// try {
+// LdapName principalLdapName = new LdapName(principal.toString());
+// if (principalLdapName.equals(name))
+// res.add(ud);
+// } catch (InvalidNameException e) {
+// // silent
+// }
+// }
}
if (res.size() == 0)
throw new UserDirectoryException("Cannot find user admin for " + name);