Class WpadProxySearchStrategy

java.lang.Object
com.github.markusbernhardt.proxy.search.wpad.WpadProxySearchStrategy
All Implemented Interfaces:
ProxySearchStrategy

public class WpadProxySearchStrategy extends Object implements ProxySearchStrategy
Uses automatic proxy script search (WPAD) to find an PAC file automatically.

Note: at the moment only the DNS name guessing schema is implemented. All others are missing.

For more information about WPAD: Web_Proxy_Autodiscovery_Protocol

Outdated RFC draft: draft-ietf-wrec-wpad-01.txt

  • Constructor Details

    • WpadProxySearchStrategy

      public WpadProxySearchStrategy()
      Constructor
  • Method Details

    • getProxySelector

      public ProxySelector getProxySelector() throws ProxyException
      Loads the proxy settings from a PAC file. The location of the PAC file is determined automatically.
      Specified by:
      getProxySelector in interface ProxySearchStrategy
      Returns:
      a configured ProxySelector, null if none is found.
      Throws:
      ProxyException - on error.
    • getName

      public String getName()
      Gets the printable name of the search strategy.
      Specified by:
      getName in interface ProxySearchStrategy
      Returns:
      the printable name of the search strategy
    • readSettings

      public Properties readSettings()
      Loads the settings and stores them in a properties map.
      Returns:
      the settings.
    • detectScriptUrlPerDNS

      private String detectScriptUrlPerDNS() throws IOException
      Uses DNS to find the script URL. Attention: this detection method is known to have some severe security issues.
      Returns:
      the URL, null if not found.
      Throws:
      IOException
    • detectScriptUrlPerDHCP

      private String detectScriptUrlPerDHCP() throws IOException
      Uses DHCP to find the script URL.
      Returns:
      the URL, null if not found.
      Throws:
      IOException
    • getMacString

      private String getMacString(byte[] mac)
    • checkDhcpAckForPAC

      private String checkDhcpAckForPAC(InetAddress ip, byte[] mac) throws IOException
      Throws:
      IOException