public boolean resolvePermission(IdentityType recipient, Object resource, String operation) {
    boolean permit = false;

    for (PermissionVoter voter : voters) {
      VotingResult result = voter.hasPermission(recipient, resource, operation);
      if (VotingResult.ALLOW.equals(result)) {
        permit = true;
      } else if (VotingResult.DENY.equals(result)) {
        return false;
      }
    }

    return permit;
  }
  public boolean resolvePermission(
      IdentityType recipient, Class<?> resourceClass, Serializable identifier, String operation) {
    boolean permit = false;

    for (PermissionVoter voter : voters) {
      VotingResult result = voter.hasPermission(recipient, resourceClass, identifier, operation);
      if (VotingResult.ALLOW.equals(result)) {
        permit = true;
      } else if (VotingResult.DENY.equals(result)) {
        return false;
      }
    }

    return permit;
  }