From fa678142166dc59faaa8a188ec900415d87fe3af Mon Sep 17 00:00:00 2001 From: Björn Hagemeister Date: Tue, 11 Nov 2014 14:08:13 +0100 Subject: Added ProxySelector Class for connecting to masterserver via proxy if necessary. Added ProxyAuthenticator for possible used authentication of proxy connection. --- .../openslx/network/StaticProxyAuthenticator.java | 21 +++++++++ .../org/openslx/network/StaticProxySelector.java | 50 ++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 src/main/java/org/openslx/network/StaticProxyAuthenticator.java create mode 100644 src/main/java/org/openslx/network/StaticProxySelector.java (limited to 'src/main/java/org/openslx/network') diff --git a/src/main/java/org/openslx/network/StaticProxyAuthenticator.java b/src/main/java/org/openslx/network/StaticProxyAuthenticator.java new file mode 100644 index 0000000..a11f1e1 --- /dev/null +++ b/src/main/java/org/openslx/network/StaticProxyAuthenticator.java @@ -0,0 +1,21 @@ +package org.openslx.network; + +import java.net.Authenticator; +import java.net.PasswordAuthentication; + +public class StaticProxyAuthenticator extends Authenticator +{ + private final String username, password; + + public StaticProxyAuthenticator( String username, String password ) + { + this.username = username; + this.password = password; + } + + protected PasswordAuthentication getPasswordAuthentication() + { + return new PasswordAuthentication( + this.username, this.password.toCharArray() ); + } +} diff --git a/src/main/java/org/openslx/network/StaticProxySelector.java b/src/main/java/org/openslx/network/StaticProxySelector.java new file mode 100644 index 0000000..28332f6 --- /dev/null +++ b/src/main/java/org/openslx/network/StaticProxySelector.java @@ -0,0 +1,50 @@ +package org.openslx.network; + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.Proxy; +import java.net.ProxySelector; +import java.net.SocketAddress; +import java.net.URI; +import java.util.ArrayList; +import java.util.List; + +import org.apache.log4j.Logger; + +public class StaticProxySelector extends ProxySelector +{ + private static Logger log = Logger.getLogger( StaticProxySelector.class ); + + private final Proxy proxy; + + public StaticProxySelector( Proxy proxy ) + { + this.proxy = proxy; + } + + @Override + public void connectFailed( URI uri, SocketAddress sa, IOException ioe ) + { + // Just one fix proxy. So no code is necessary here for deactivating proxy. + } + + @Override + public List select( URI uri ) + { + List proxyList = new ArrayList(); + String host = uri.getHost(); + + log.info( "Host: " + host ); + + // If host equals localhost return empty list. + if ( ! ( host.startsWith( "127." ) ) && ! ( host.equals( "localhost" ) ) ) { + // log.info("host.startsWith(127.): " + host.startsWith( "127." )); + // log.info( "host.equals(localhost): " + host.equals("localhost")); + log.info( "Adding proxy to proxyList" ); + proxyList.add( this.proxy ); + } + // log.info( "proxyList: " + proxyList.toString() ); + return proxyList; + } + +} -- cgit v1.2.3-55-g7522