summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/taskmanager/tasks/DispatchRelay.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/taskmanager/tasks/DispatchRelay.java')
-rw-r--r--src/main/java/org/openslx/taskmanager/tasks/DispatchRelay.java33
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." );