2
* JBoss, Home of Professional Open Source
3
* Copyright 2005, JBoss Inc., and individual contributors as indicated
4
* by the @authors tag. See the copyright.txt in the distribution for a
5
* full listing of individual contributors.
7
* This is free software; you can redistribute it and/or modify it
8
* under the terms of the GNU Lesser General Public License as
9
* published by the Free Software Foundation; either version 2.1 of
10
* the License, or (at your option) any later version.
12
* This software is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with this software; if not, write to the Free
19
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
22
package org.jboss.test.remoting.detection.jndi.deadlock;
24
import javax.net.ssl.KeyManager;
25
import javax.net.ssl.KeyManagerFactory;
26
import javax.net.ssl.SSLContext;
27
import javax.net.ssl.SSLServerSocketFactory;
28
import javax.net.ssl.SSLSocketFactory;
29
import javax.net.ssl.TrustManager;
30
import javax.net.ssl.TrustManagerFactory;
31
import java.io.FileInputStream;
32
import java.security.KeyStore;
35
* @author <a href="mailto:tom.elrod@jboss.com">Tom Elrod</a>
36
* @author Michael Voss
42
public static SSLServerSocketFactory createServerSocketFactory(String keyStorePassword,
43
String trustStorePassword,
45
String trustStorePath) throws Exception
47
// create an SSLContext
48
SSLContext context = null;
50
context = SSLContext.getInstance("TLS");
53
char[] keyPassphrase = keyStorePassword.toCharArray();
54
char[] trustPassphrase = trustStorePassword.toCharArray();
55
// load the server key store
56
KeyStore server_keystore = KeyStore.getInstance("JKS");
57
server_keystore.load(new FileInputStream(keyStorePath), keyPassphrase);
59
// load the server trust store
60
KeyStore server_truststore = KeyStore.getInstance("JKS");
61
server_truststore.load(new FileInputStream(trustStorePath), trustPassphrase);
63
// initialize a KeyManagerFactory with the KeyStore
64
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
65
kmf.init(server_keystore, keyPassphrase);
66
// KeyManagers from the KeyManagerFactory
67
KeyManager[] keyManagers = kmf.getKeyManagers();
69
// initialize a TrustManagerFactory with the TrustStore
70
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
71
tmf.init(server_truststore);
72
// TrustManagers from the TrustManagerFactory
73
TrustManager[] trustManagers = tmf.getTrustManagers();
75
// initialize context with Keystore and Truststore information
76
context.init(keyManagers, trustManagers, null);
78
// get ServerSocketFactory from context
79
SSLServerSocketFactory ssf = context.getServerSocketFactory();
80
return new ClientAuthSocketFactory(ssf);
83
public static SSLSocketFactory createSocketFactory(String keyStorePassword,
84
String trustStorePassword,
86
String trustStorePath) throws Exception
88
// create an SSLContext
89
SSLContext context = null;
91
context = SSLContext.getInstance("TLS");
94
char[] keyPassphrase = keyStorePassword.toCharArray();
95
char[] trustPassphrase = trustStorePassword.toCharArray();
96
// load the server key store
97
KeyStore server_keystore = KeyStore.getInstance("JKS");
98
server_keystore.load(new FileInputStream(keyStorePath), keyPassphrase);
100
// load the server trust store
101
KeyStore server_truststore = KeyStore.getInstance("JKS");
102
server_truststore.load(new FileInputStream(trustStorePath), trustPassphrase);
104
// initialize a KeyManagerFactory with the KeyStore
105
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
106
kmf.init(server_keystore, keyPassphrase);
107
// KeyManagers from the KeyManagerFactory
108
KeyManager[] keyManagers = kmf.getKeyManagers();
110
// initialize a TrustManagerFactory with the TrustStore
111
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
112
tmf.init(server_truststore);
113
// TrustManagers from the TrustManagerFactory
114
TrustManager[] trustManagers = tmf.getTrustManagers();
116
// initialize context with Keystore and Truststore information
117
context.init(keyManagers, trustManagers, null);
119
// get ServerSocketFactory from context
120
return context.getSocketFactory();