From c4aa2f7dc6a3a8926122b06df0ae5337330c610c Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Mon, 1 Dec 2014 12:58:55 +0100 Subject: [client] proxy support --- .../src/main/java/config/ConfigProxy.java | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 dozentenmodul/src/main/java/config/ConfigProxy.java (limited to 'dozentenmodul/src/main/java/config/ConfigProxy.java') diff --git a/dozentenmodul/src/main/java/config/ConfigProxy.java b/dozentenmodul/src/main/java/config/ConfigProxy.java new file mode 100644 index 00000000..515110bd --- /dev/null +++ b/dozentenmodul/src/main/java/config/ConfigProxy.java @@ -0,0 +1,54 @@ +package config; + + +import java.io.IOException; +import java.net.ProxySelector; + +import org.apache.log4j.Logger; + +import com.btr.proxy.search.ProxySearch; +import com.btr.proxy.search.wpad.WpadProxySearchStrategy; +import com.btr.proxy.util.ProxyException; + +/** + * Configures the proxy + * + * @author Jonathan Bauer + */ + +public class ConfigProxy { + + /** + * Logger for this class + */ + private final static Logger LOGGER = Logger.getLogger(ConfigProxy.class); + + /** + * Initialization method. + */ + public static void init() throws IOException { + // try to find local proxy settings + // TODO: do we actually want to look for local settings rather + // than just forcing WPAD? + ProxySearch proxySearch = ProxySearch.getDefaultProxySearch(); + ProxySelector myProxySelector = proxySearch.getProxySelector(); + + if (myProxySelector == null) { + // didn't work, try WPAD detection + LOGGER.error("No suitable proxy settings found, trying WPAD..."); + WpadProxySearchStrategy ss = new WpadProxySearchStrategy(); + try { + myProxySelector = ss.getProxySelector(); + } catch (ProxyException e) { + LOGGER.error("WPAD proxy error, see trace: ", e); + } + } + // final check to see if WPAD actually worked + if (myProxySelector != null) { + LOGGER.debug("Proxy initialised."); + ProxySelector.setDefault(myProxySelector); + } else { + LOGGER.error("Could not find a suitable proxy!"); + } + } +} -- cgit v1.2.3-55-g7522