diff options
Diffstat (limited to 'dozentenmodul/src/main/java')
| -rw-r--r-- | dozentenmodul/src/main/java/App.java | 18 | ||||
| -rw-r--r-- | dozentenmodul/src/main/java/config/ConfigProxy.java | 54 |
2 files changed, 72 insertions, 0 deletions
diff --git a/dozentenmodul/src/main/java/App.java b/dozentenmodul/src/main/java/App.java index 4b7a24ef..c7d25c43 100644 --- a/dozentenmodul/src/main/java/App.java +++ b/dozentenmodul/src/main/java/App.java @@ -3,6 +3,9 @@ import gui.intro.Login_GUI; import java.awt.EventQueue; import java.io.File; import java.io.IOException; +import java.lang.reflect.Proxy; +import java.net.ProxySelector; +import java.net.URI; import javax.swing.JOptionPane; @@ -10,8 +13,16 @@ import org.apache.log4j.BasicConfigurator; import org.apache.log4j.FileAppender; import org.apache.log4j.Logger; import org.apache.log4j.PatternLayout; +import org.openslx.network.ProxyConfiguration; +import com.btr.proxy.search.ProxySearch; +import com.btr.proxy.search.ProxySearch.Strategy; +import com.btr.proxy.search.wpad.WpadProxySearchStrategy; +import com.btr.proxy.util.ProxyException; + +import util.ShibbolethECP; import config.Config; +import config.ConfigProxy; public class App { @@ -63,6 +74,13 @@ public class App { return; } + // initialise the proxy settings + try { + ConfigProxy.init(); + } catch (IOException e) { + LOGGER.error("IOException when trying to initialise the proxy, see trace: ", e); + } + setupLogger(); // start the GUI 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!"); + } + } +} |
