summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/taskmanager/tasks/DispatchSSLRelay.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/taskmanager/tasks/DispatchSSLRelay.java')
-rw-r--r--src/main/java/org/openslx/taskmanager/tasks/DispatchSSLRelay.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/taskmanager/tasks/DispatchSSLRelay.java b/src/main/java/org/openslx/taskmanager/tasks/DispatchSSLRelay.java
new file mode 100644
index 0000000..fc1382e
--- /dev/null
+++ b/src/main/java/org/openslx/taskmanager/tasks/DispatchSSLRelay.java
@@ -0,0 +1,40 @@
+package org.openslx.taskmanager.tasks;
+
+import java.io.IOException;
+import java.security.cert.X509Certificate;
+
+import javax.net.SocketFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+import javax.net.ssl.SSLSocket;
+
+import org.openslx.taskmanager.tasks.DispatchRelay;
+
+public class DispatchSSLRelay extends DispatchRelay {
+
+ @Override
+ protected SSLSocket[] createSockets ( SocketFactory sf ) throws IOException {
+ return ( SSLSocket[] ) super.createSockets( sf );
+ }
+
+ @Override
+ protected SSLSocketFactory getSocketFactory () throws Exception {
+ return trustAll().getSocketFactory();
+ }
+
+ 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;
+ }
+}