Class GnomeDConfProxySearchStrategy

  • All Implemented Interfaces:
    ProxySearchStrategy

    public class GnomeDConfProxySearchStrategy
    extends java.lang.Object
    implements ProxySearchStrategy
    Loads the Gnome proxy settings from the Gnome GConf settings.

    The following settings are extracted from the configuration that is stored in .gconf folder found in the user's home directory:

    • org.gnome.system.proxy.http enabled -> bool used only by gnome-vfs
    • org.gnome.system.proxy.http host -> string "my-proxy.example.com" without "http://"
    • org.gnome.system.proxy.http port -> int
    • org.gnome.system.proxy.http use-authentication -> bool
    • org.gnome.system.proxy.http authentication-user -> string
    • org.gnome.system.proxy.http authentication-password -> string
    • org.gnome.system.proxy ignore-hosts -> list-of-string
    • org.gnome.system.proxy mode -> string THIS IS THE CANONICAL KEY; SEE BELOW
    • org.gnome.system.proxy use-same-proxy -> bool
    • org.gnome.system.proxy.https host -> string "proxy-for-https.example.com"
    • org.gnome.system.proxy.https port -> int
    • org.gnome.system.proxy.ftp host -> string "proxy-for-ftp.example.com"
    • org.gnome.system.proxy.ftp port -> int
    • org.gnome.system.proxy.socks host -> string "proxy-for-socks.example.com"
    • org.gnome.system.proxy.socks port -> int
    • org.gnome.system.proxy autoconfig-url -> string "http://proxy-autoconfig.example.com"
    org.gnome.system.proxy mode can be either:
    "none" -> No proxy is used
    "manual" -> The user's configuration values are used (org.gnome.system.http_proxy/{host,port,etc.})
    "auto" -> The "org.gnome.system.proxy/autoconfig_url" key is used

    GNOME Proxy_configuration settings are explained here in detail

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getName()
      Gets the printable name of the search strategy.
      java.net.ProxySelector getProxySelector()
      Loads the proxy settings and initializes a proxy selector for the Gnome proxy settings.
      private boolean hasProxySettings​(java.util.Properties settings)
      Checks if we have Proxy configuration settings in the properties.
      private void installFtpSelector​(java.util.Properties settings, ProtocolDispatchSelector ps)  
      private void installHttpSelector​(java.util.Properties settings, ProtocolDispatchSelector ps)
      Install a http proxy from the given settings.
      private void installSecureSelector​(java.util.Properties settings, ProtocolDispatchSelector ps)  
      private void installSocksSelector​(java.util.Properties settings, ProtocolDispatchSelector ps)
      Install a socks proxy from the given settings.
      private java.util.Properties parseSettings​(java.util.Properties settings)
      Parse the settings file and extract all network.proxy.* settings from it.
      java.util.Properties readSettings()
      Load the proxy settings from the gconf settings XML file.
      private java.net.ProxySelector setupFixedProxySelector​(java.util.Properties settings)
      Parse the fixed proxy settings and build an ProxySelector for this a chained configuration.
      private boolean useForAllProtocols​(java.util.Properties settings)
      Check if the http proxy should also be used for all other protocols.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • GnomeDConfProxySearchStrategy

        public GnomeDConfProxySearchStrategy()
        ProxySelector
        See Also:
        ProxySelector()
    • Method Detail

      • getProxySelector

        public java.net.ProxySelector getProxySelector()
                                                throws ProxyException
        Loads the proxy settings and initializes a proxy selector for the Gnome proxy settings.
        Specified by:
        getProxySelector in interface ProxySearchStrategy
        Returns:
        a configured ProxySelector, null if none is found.
        Throws:
        ProxyException - on file reading error.
      • getName

        public java.lang.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 java.util.Properties readSettings()
                                          throws ProxyException
        Load the proxy settings from the gconf settings XML file.
        Returns:
        the loaded settings stored in a properties object.
        Throws:
        ProxyException - on processing error.
      • setupFixedProxySelector

        private java.net.ProxySelector setupFixedProxySelector​(java.util.Properties settings)
        Parse the fixed proxy settings and build an ProxySelector for this a chained configuration.
        Parameters:
        settings - the proxy settings to evaluate.
      • useForAllProtocols

        private boolean useForAllProtocols​(java.util.Properties settings)
        Check if the http proxy should also be used for all other protocols.
        Parameters:
        settings - to inspect.
        Returns:
        true if only one proxy is configured else false.
      • hasProxySettings

        private boolean hasProxySettings​(java.util.Properties settings)
        Checks if we have Proxy configuration settings in the properties.
        Parameters:
        settings - to inspect.
        Returns:
        true if we have found Proxy settings.
      • installHttpSelector

        private void installHttpSelector​(java.util.Properties settings,
                                         ProtocolDispatchSelector ps)
                                  throws java.lang.NumberFormatException
        Install a http proxy from the given settings.
        Parameters:
        settings - to inspect
        ps - the dispatch selector to configure.
        Throws:
        java.lang.NumberFormatException
      • installSocksSelector

        private void installSocksSelector​(java.util.Properties settings,
                                          ProtocolDispatchSelector ps)
                                   throws java.lang.NumberFormatException
        Install a socks proxy from the given settings.
        Parameters:
        settings - to inspect
        ps - the dispatch selector to configure.
        Throws:
        java.lang.NumberFormatException
      • installFtpSelector

        private void installFtpSelector​(java.util.Properties settings,
                                        ProtocolDispatchSelector ps)
                                 throws java.lang.NumberFormatException
        Parameters:
        settings -
        ps -
        Throws:
        java.lang.NumberFormatException
      • installSecureSelector

        private void installSecureSelector​(java.util.Properties settings,
                                           ProtocolDispatchSelector ps)
                                    throws java.lang.NumberFormatException
        Parameters:
        settings -
        ps -
        Throws:
        java.lang.NumberFormatException
      • parseSettings

        private java.util.Properties parseSettings​(java.util.Properties settings)
                                            throws java.io.IOException
        Parse the settings file and extract all network.proxy.* settings from it.
        Parameters:
        context - the gconf context to parse.
        settings - the settings object to fill.
        Returns:
        the parsed properties.
        Throws:
        java.io.IOException - on read error.