/** * {@inheritDoc} */ @Override public Map<String, Permission> unmarshal(Permissions xdmPerms) throws Exception { Map<String, Permission> perms = new HashMap<String, Permission>(); for (Permission xdmPerm : xdmPerms.permissions()) { perms.put(xdmPerm.getResource(), xdmPerm); } return perms; }
public Map<String, Permission> getFlatPermissions() { Map<String, Permission> xPerms = getAllPermissions(); List<Permission> lPerms = new ArrayList<Permission>(xPerms.values()); for (Permission lPerm: lPerms) { if (lPerm.isWildcard()) { xPerms.remove(lPerm.getResource()); List<String> all = JMXUtils.queryNames(lPerm.getResource()); for (String resource: all) { Permission xPerm = new Permission(resource, lPerm.getPermissions()); xPerms.put(resource, xPerm); } } } logger.trace("getFlatPermissions.exit; returning: {}", xPerms); return xPerms; }
@Override public void write(ObjectDataOutput out, Permission xPerm) throws IOException { out.writeUTF(xPerm.getResource()); out.writeObject(xPerm.getPermissions()); }
protected void getRecursivePermissions(Map<String, Permission> xPerms, String roleName) { Role role = getRoleCache().get(roleName); if (role != null) { if (role.getIncludedRoles().size() > 0) { for (String name: role.getIncludedRoles()) { getRecursivePermissions(xPerms, name); } } Collection<Permission> perms = role.getPermissions().values(); if (perms.size() > 0) { for (Permission perm: perms) { Permission xPerm = xPerms.get(perm.getResource()); if (xPerm == null) { xPerm = new Permission(perm.getResource()); xPerms.put(perm.getResource(), xPerm); } for (Permission.Value p: perm.getPermissions()) { xPerm.addPermission(p); } } } } }
@Override @SuppressWarnings("unchecked") public Role read(ObjectDataInput in) throws IOException { Object[] entity = super.readEntity(in); String name = in.readUTF(); String description = in.readUTF(); List<Permission> perms = (List<Permission>) in.readObject(); Set<String> roles = (Set<String>) in.readObject(); Map<String, Permission> mPerms = new HashMap<String, Permission>(perms.size()); for (Permission xpm: perms) { mPerms.put(xpm.getResource(), xpm); } Role xRole = new Role( (int) entity[0], (Date) entity[1], (String) entity[2], mPerms, roles, name, description); return xRole; }
@Override @SuppressWarnings("unchecked") public User read(ObjectDataInput in) throws IOException { Object[] entity = super.readEntity(in); String login = in.readUTF(); String password = in.readUTF(); boolean active = in.readBoolean(); List<Permission> perms = (List<Permission>) in.readObject(); Set<String> roles = (Set<String>) in.readObject(); Map<String, Permission> mPerms = new HashMap<String, Permission>(perms.size()); for (Permission xpm: perms) { mPerms.put(xpm.getResource(), xpm); } User xUser = new User( (int) entity[0], (Date) entity[1], (String) entity[2], mPerms, roles, login, password, active); return xUser; }