/** * * @param resource the resource to grant permission on * @param permission the permission to add into the entity permissions map * @return true if the permission has been added, false otherwise */ public boolean addPermission(String resource, Permission.Value permission) { Permission perm = permissions.get(resource); if (perm == null) { perm = new Permission(resource); permissions.put(resource, perm); } return perm.addPermission(permission); }
@Override @SuppressWarnings("unchecked") public Permission read(ObjectDataInput in) throws IOException { return new Permission(in.readUTF(), (Set<Permission.Value>) in.readObject()); }
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; }
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); } } } } }