diff options
Diffstat (limited to 'src/main/java/org/openslx/taskmanager/tasks/DispatchRelay.java')
-rw-r--r-- | src/main/java/org/openslx/taskmanager/tasks/DispatchRelay.java | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/src/main/java/org/openslx/taskmanager/tasks/DispatchRelay.java b/src/main/java/org/openslx/taskmanager/tasks/DispatchRelay.java index 6f16ab5..5bd1823 100644 --- a/src/main/java/org/openslx/taskmanager/tasks/DispatchRelay.java +++ b/src/main/java/org/openslx/taskmanager/tasks/DispatchRelay.java @@ -1,8 +1,14 @@ package org.openslx.taskmanager.tasks; import java.net.Socket; +import java.security.cert.X509Certificate; import javax.net.SocketFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocket; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; import java.io.IOException; import java.io.InputStream; @@ -74,7 +80,7 @@ public class DispatchRelay extends AbstractTask { return false; } - this.status.addMessage( "Initiated relay task." ); + this.status.addMessage( "Initiated relay task: " + this.getClass().getName() ); this.status.addMessage( this.descs[0] + " is " + this.hosts[0] + ":" + this.ports[0] ); this.status.addMessage( this.descs[1] + " is " + this.hosts[1] + ":" + this.ports[1] ); return true; @@ -91,17 +97,32 @@ public class DispatchRelay extends AbstractTask { return t; } - protected SocketFactory getSocketFactory () throws Exception { - return SocketFactory.getDefault(); + protected SSLSocketFactory getSocketFactory () throws Exception { + status.addMessage( "Using TLS/SSL encryption." ); + return trustAll().getSocketFactory(); } - protected Socket[] createSockets ( SocketFactory sf ) throws IOException + protected SSLContext trustAll () throws Exception { + TrustManager[] trustAllMan = new TrustManager[] { new X509TrustManager() { + public java.security.cert.X509Certificate[] getAcceptedIssuers() { + return null; + } + public void checkClientTrusted( X509Certificate[] certs, String authType ) {} + public void checkServerTrusted( X509Certificate[] certs, String authType ) {} + } + }; + SSLContext ctx = SSLContext.getInstance( "SSL" ); + ctx.init( null, trustAllMan, new java.security.SecureRandom() ); + return ctx; + } + + protected SSLSocket[] createSockets ( SocketFactory sf ) throws IOException { - Socket[] s = new Socket[2]; + SSLSocket[] s = new SSLSocket[2]; for ( int i = 0; i < 2; i++ ) { InetSocketAddress addr = new InetSocketAddress( hosts[i], ports[i] ); - s[i] = sf.createSocket(); + s[i] = (SSLSocket) sf.createSocket(); this.status.addMessage( "trying to connect socket to " + addr.toString() ); s[i].connect( addr, 1200 ); this.status.addMessage( "connected." ); |