diff options
Diffstat (limited to 'src/main/java/org/openslx/taskmanager/tasks/DispatchSSLRelay.java')
-rw-r--r-- | src/main/java/org/openslx/taskmanager/tasks/DispatchSSLRelay.java | 40 |
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; + } +} |