code: protected boolean isForbidden(String scheme, String host, int port, boolean openNonPrivPorts)
      {
          // Check port
          Integer p = new Integer(port);
          if (port > 0 && !_allowedConnectPorts.contains(p))
          {
              if (!openNonPrivPorts || port <= 1024)
                  return true;
          }
  
          // Must be a scheme that can be proxied.
          if (scheme == null || !_ProxySchemes.containsKey(scheme))
              return true;
  
          // Must be in any defined white list
          if (_proxyHostsWhiteList != null && !_proxyHostsWhiteList.contains(host))
              return true;
  
          // Must not be in any defined black list
          if (_proxyHostsBlackList != null && _proxyHostsBlackList.contains(host))
              return true;
  
          return false;
      }
docs: Is scheme,host & port Forbidden.
  
  @param scheme A scheme that mast be in the proxySchemes StringMap.
  @param host A host that must pass the white and black lists
  @param port A port that must in the allowedConnectPorts Set
  @param openNonPrivPorts If true ports greater than 1024 are allowed.
  @return True if the request to the scheme,host and port is not forbidden.