From e70ee5b59306ea37dd0c72603c61b33b1555def9 Mon Sep 17 00:00:00 2001 From: Björn Hagemeister Date: Tue, 11 Nov 2014 14:40:18 +0100 Subject: Added proxy java classes. --- .../browser/firefox/FirefoxProfileSource.java | 23 ++ .../firefox/FirefoxProxySearchStrategy.java | 267 +++++++++++++++++++++ .../browser/firefox/FirefoxSettingParser.java | 79 ++++++ .../browser/firefox/LinuxFirefoxProfileSource.java | 46 ++++ .../browser/firefox/WinFirefoxProfileSource.java | 71 ++++++ .../search/browser/ie/IELocalByPassFilter.java | 28 +++ .../search/browser/ie/IEProxySearchStrategy.java | 213 ++++++++++++++++ 7 files changed, 727 insertions(+) create mode 100644 src/main/java/com/btr/proxy/search/browser/firefox/FirefoxProfileSource.java create mode 100644 src/main/java/com/btr/proxy/search/browser/firefox/FirefoxProxySearchStrategy.java create mode 100644 src/main/java/com/btr/proxy/search/browser/firefox/FirefoxSettingParser.java create mode 100644 src/main/java/com/btr/proxy/search/browser/firefox/LinuxFirefoxProfileSource.java create mode 100644 src/main/java/com/btr/proxy/search/browser/firefox/WinFirefoxProfileSource.java create mode 100644 src/main/java/com/btr/proxy/search/browser/ie/IELocalByPassFilter.java create mode 100644 src/main/java/com/btr/proxy/search/browser/ie/IEProxySearchStrategy.java (limited to 'src/main/java/com/btr/proxy/search/browser') diff --git a/src/main/java/com/btr/proxy/search/browser/firefox/FirefoxProfileSource.java b/src/main/java/com/btr/proxy/search/browser/firefox/FirefoxProfileSource.java new file mode 100644 index 0000000..8517074 --- /dev/null +++ b/src/main/java/com/btr/proxy/search/browser/firefox/FirefoxProfileSource.java @@ -0,0 +1,23 @@ +package com.btr.proxy.search.browser.firefox; + +import java.io.File; +import java.io.IOException; + +/***************************************************************************** + * A profile source for Firefox profiles. + * + * @author Bernd Rosstauscher (proxyvole@rosstauscher.de) Copyright 2009 + ****************************************************************************/ + +interface FirefoxProfileSource { + + /************************************************************************* + * Gets a profile folder found on the current system. + * If multiple profile folders are available the "default" profile is chosen. + * @return a profile folder. + * @throws IOException on error. + ************************************************************************/ + + public File getProfileFolder() throws IOException; + +} diff --git a/src/main/java/com/btr/proxy/search/browser/firefox/FirefoxProxySearchStrategy.java b/src/main/java/com/btr/proxy/search/browser/firefox/FirefoxProxySearchStrategy.java new file mode 100644 index 0000000..30c3be1 --- /dev/null +++ b/src/main/java/com/btr/proxy/search/browser/firefox/FirefoxProxySearchStrategy.java @@ -0,0 +1,267 @@ +package com.btr.proxy.search.browser.firefox; + +import java.io.IOException; +import java.net.ProxySelector; +import java.util.Properties; + +import com.btr.proxy.search.ProxySearchStrategy; +import com.btr.proxy.search.desktop.DesktopProxySearchStrategy; +import com.btr.proxy.search.wpad.WpadProxySearchStrategy; +import com.btr.proxy.selector.direct.NoProxySelector; +import com.btr.proxy.selector.fixed.FixedProxySelector; +import com.btr.proxy.selector.fixed.FixedSocksSelector; +import com.btr.proxy.selector.misc.ProtocolDispatchSelector; +import com.btr.proxy.selector.whitelist.ProxyBypassListSelector; +import com.btr.proxy.util.Logger; +import com.btr.proxy.util.Logger.LogLevel; +import com.btr.proxy.util.PlatformUtil; +import com.btr.proxy.util.PlatformUtil.Platform; +import com.btr.proxy.util.ProxyException; +import com.btr.proxy.util.ProxyUtil; + +/***************************************************************************** + * Loads the Firefox3 proxy settings from the users Firefox3 settings. + * This will load the file prefs.js that is located in the + *

+ * .mozilla/firefox/(profile)/ folder. + *

+ * + * See Mozilla_Networking_Preferences + * for an explanation of the proxy settings. + *

+ * The following settings are extracted from + * this file: + *

+ * Some generic settings:
+ * + * Host names and ports per protocol are stored in the following settings: + *