summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/taskmanager/tasks/DispatchSSLRelay.java
blob: fc1382eeb2b41f8382471fd362995ef1186e3b1f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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;
	}
}