summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java')
-rw-r--r--dozentenmodul/src/main/java/App.java18
-rw-r--r--dozentenmodul/src/main/java/config/ConfigProxy.java54
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!");
+ }
+ }
+}