2
* JBoss, Home of Professional Open Source
3
* Copyright 2006, 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.
24
* Created on Mar 24, 2006
26
package org.jboss.remoting.transport.sslmultiplex;
28
import org.jboss.remoting.InvokerLocator;
29
import org.jboss.remoting.security.CustomSSLServerSocketFactory;
30
import org.jboss.remoting.security.SSLSocketBuilder;
31
import org.jboss.remoting.security.SSLSocketBuilderMBean;
32
import org.jboss.remoting.transport.multiplex.MultiplexServerInvoker;
34
import javax.net.ServerSocketFactory;
35
import javax.net.SocketFactory;
36
import javax.net.ssl.SSLServerSocketFactory;
37
import java.io.IOException;
42
* <code>SSLMultiplexServerInvoker</code> is the server side of the sslmultiplex transport.
43
* For more information, see Remoting documentation on labs.jboss.org.
45
* @author <a href="mailto:ron.sigal@jboss.com">Ron Sigal</a>
46
* @version $Revision: 1248 $
48
* Copyright (c) Mar 24, 2006
52
public class SSLMultiplexServerInvoker extends MultiplexServerInvoker
58
public SSLMultiplexServerInvoker(InvokerLocator locator)
66
* @param configuration
68
public SSLMultiplexServerInvoker(InvokerLocator locator, Map configuration) throws IOException
70
super(locator, configuration);
74
* @param configuration
77
protected SocketFactory createSocketFactory(Map configuration)
79
SocketFactory socketFactory = null;
80
if ((socketFactory = super.createSocketFactory(configuration)) != null)
83
ServerSocketFactory serverSocketFactory = getServerSocketFactory();
87
if (serverSocketFactory instanceof CustomSSLServerSocketFactory)
89
CustomSSLServerSocketFactory customServerSocketFactory = (CustomSSLServerSocketFactory) serverSocketFactory;
90
SSLSocketBuilderMBean builder = customServerSocketFactory.getSSLSocketBuilder();
91
boolean shouldUseDefault = builder.getUseSSLServerSocketFactory();
92
builder.setUseSSLSocketFactory(shouldUseDefault);
93
boolean useClientMode = builder.isServerSocketUseClientMode();
94
builder.setSocketUseClientMode(useClientMode);
95
return builder.createSSLSocketFactory();
98
SSLSocketBuilder builder = new SSLSocketBuilder(configuration);
99
return builder.createSSLSocketFactory();
103
log.error("Error creating SSL Socket Factory for server invoker.", e);
104
// throw new IOException("Error creating SSL Socket Factory. Root cause: " + e.getMessage());
109
protected ServerSocketFactory getDefaultServerSocketFactory()
111
return SSLServerSocketFactory.getDefault();