public ManagementPermission createScopedPermission(Constraint constraint, int constraintIndex) { Constraint[] altered; if (constraintIndex == constraints.length) { altered = new Constraint[constraintIndex + 1]; System.arraycopy(constraints, 0, altered, 0, constraints.length); } else { Constraint existing = constraints[constraintIndex]; if (constraint.replaces(existing)) { altered = new Constraint[constraints.length]; System.arraycopy(constraints, 0, altered, 0, constraints.length); } else { altered = new Constraint[constraintIndex + 1]; if (constraintIndex == 0) { System.arraycopy(constraints, 0, altered, 1, constraints.length); } else { System.arraycopy(constraints, 0, altered, 0, constraintIndex); System.arraycopy(constraints, constraintIndex, altered, constraintIndex + 1, constraints.length - constraintIndex); } } } altered[constraintIndex] = constraint; return new SimpleManagementPermission(getActionEffect(), altered); } }
@Override public boolean implies(Permission permission) { if (equals(permission)) { SimpleManagementPermission other = (SimpleManagementPermission) permission; // Validate constraints assert constraints.length == other.constraints.length : String.format("incompatible ManagementPermission; " + "differing constraint counts %d vs %d", constraints.length, other.constraints.length); Action.ActionEffect actionEffect = getActionEffect(); for (int i = 0; i < constraints.length; i++) { Constraint ours = constraints[i]; Constraint theirs = other.constraints[i]; assert ours.getClass() == theirs.getClass() : "incompatible constraints: ours = " + ours.getClass() + " -- theirs = " + theirs.getClass(); if (ours.violates(theirs, actionEffect)) { ControllerLogger.ACCESS_LOGGER.tracef("Constraints are violated for %s", actionEffect); return false; } } return true; } return false; }
@Override public boolean implies(Permission permission) { if (equals(permission)) { SimpleManagementPermission other = (SimpleManagementPermission) permission; // Validate constraints assert constraints.length == other.constraints.length : String.format("incompatible ManagementPermission; " + "differing constraint counts %d vs %d", constraints.length, other.constraints.length); Action.ActionEffect actionEffect = getActionEffect(); for (int i = 0; i < constraints.length; i++) { Constraint ours = constraints[i]; Constraint theirs = other.constraints[i]; assert ours.getClass() == theirs.getClass() : "incompatible constraints: ours = " + ours.getClass() + " -- theirs = " + theirs.getClass(); if (ours.violates(theirs, actionEffect)) { ControllerLogger.ACCESS_LOGGER.tracef("Constraints are violated for %s", actionEffect); return false; } } return true; } return false; }
public ManagementPermission createScopedPermission(Constraint constraint, int constraintIndex) { Constraint[] altered; if (constraintIndex == constraints.length) { altered = new Constraint[constraintIndex + 1]; System.arraycopy(constraints, 0, altered, 0, constraints.length); } else { Constraint existing = constraints[constraintIndex]; if (constraint.replaces(existing)) { altered = new Constraint[constraints.length]; System.arraycopy(constraints, 0, altered, 0, constraints.length); } else { altered = new Constraint[constraintIndex + 1]; if (constraintIndex == 0) { System.arraycopy(constraints, 0, altered, 1, constraints.length); } else { System.arraycopy(constraints, 0, altered, 0, constraintIndex); System.arraycopy(constraints, constraintIndex, altered, constraintIndex + 1, constraints.length - constraintIndex); } } } altered[constraintIndex] = constraint; return new SimpleManagementPermission(getActionEffect(), altered); } }
@Override public boolean implies(Permission permission) { if (equals(permission)) { SimpleManagementPermission other = (SimpleManagementPermission) permission; // Validate constraints assert constraints.length == other.constraints.length : String.format("incompatible ManagementPermission; " + "differing constraint counts %d vs %d", constraints.length, other.constraints.length); Action.ActionEffect actionEffect = getActionEffect(); for (int i = 0; i < constraints.length; i++) { Constraint ours = constraints[i]; Constraint theirs = other.constraints[i]; assert ours.getClass() == theirs.getClass() : "incompatible constraints: ours = " + ours.getClass() + " -- theirs = " + theirs.getClass(); if (ours.violates(theirs, actionEffect)) { ControllerLogger.ACCESS_LOGGER.tracef("Constraints are violated for %s", actionEffect); return false; } } return true; } return false; }
public ManagementPermission createScopedPermission(Constraint constraint, int constraintIndex) { Constraint[] altered; if (constraintIndex == constraints.length) { altered = new Constraint[constraintIndex + 1]; System.arraycopy(constraints, 0, altered, 0, constraints.length); } else { Constraint existing = constraints[constraintIndex]; if (constraint.replaces(existing)) { altered = new Constraint[constraints.length]; System.arraycopy(constraints, 0, altered, 0, constraints.length); } else { altered = new Constraint[constraintIndex + 1]; if (constraintIndex == 0) { System.arraycopy(constraints, 0, altered, 1, constraints.length); } else { System.arraycopy(constraints, 0, altered, 0, constraintIndex); System.arraycopy(constraints, constraintIndex, altered, constraintIndex + 1, constraints.length - constraintIndex); } } } altered[constraintIndex] = constraint; return new SimpleManagementPermission(getActionEffect(), altered); } }
return other.violates(this, actionEffect);
return other.violates(this, actionEffect);
return other.violates(this, actionEffect);
return other.violates(this, actionEffect);
return other.violates(this, actionEffect);
return other.violates(this, actionEffect);