~ubuntu-branches/ubuntu/raring/libjboss-remoting-java/raring

« back to all changes in this revision

Viewing changes to tests/org/jboss/test/remoting/transport/socket/ssl/builder/SSLSocketInvokerTestServer.java

  • Committer: Package Import Robot
  • Author(s): Torsten Werner
  • Date: 2011-09-09 14:01:03 UTC
  • mto: This revision was merged to the branch mainline in revision 9.
  • Revision ID: package-import@ubuntu.com-20110909140103-o8ucrolqt5g25k57
Tags: upstream-2.5.3.SP1
ImportĀ upstreamĀ versionĀ 2.5.3.SP1

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
package org.jboss.test.remoting.transport.socket.ssl.builder;
2
 
 
3
 
import org.apache.log4j.Level;
4
 
import org.jboss.jrunit.extensions.ServerTestCase;
5
 
import org.jboss.logging.Logger;
6
 
import org.jboss.remoting.ServerInvocationHandler;
7
 
import org.jboss.remoting.security.SSLServerSocketFactoryService;
8
 
import org.jboss.remoting.security.SSLSocketBuilder;
9
 
import org.jboss.remoting.security.ServerSocketFactoryMBean;
10
 
import org.jboss.remoting.transport.Connector;
11
 
import org.jboss.test.remoting.TestUtil;
12
 
import org.jboss.test.remoting.transport.mock.MockServerInvocationHandler;
13
 
import org.jboss.test.remoting.transport.socket.ssl.SSLInvokerConstants;
14
 
import org.w3c.dom.Document;
15
 
 
16
 
import javax.management.MBeanServer;
17
 
import javax.management.MBeanServerFactory;
18
 
import javax.management.ObjectName;
19
 
import javax.xml.parsers.DocumentBuilderFactory;
20
 
import java.io.ByteArrayInputStream;
21
 
import java.io.IOException;
22
 
 
23
 
/**
24
 
 * This is the server for the test case to verify can have push callbacks using ssl where
25
 
 * the client mode is used for the client calling back on the callback server living within the
26
 
 * client test instance.
27
 
 *
28
 
 * @author <a href="mailto:tom.elrod@jboss.com">Tom Elrod</a>
29
 
 */
30
 
public class SSLSocketInvokerTestServer extends ServerTestCase implements SSLInvokerConstants
31
 
{
32
 
   private int serverPort;
33
 
   private Connector connector = null;
34
 
   private SSLSocketBuilder socketBuilder = null;
35
 
 
36
 
   private static final Logger log = Logger.getLogger(SSLSocketInvokerTestServer.class);
37
 
 
38
 
   public void init() throws Exception
39
 
   {
40
 
      serverPort = getPort();
41
 
      if (serverPort < 0)
42
 
      {
43
 
         serverPort = TestUtil.getRandomPort();
44
 
      }
45
 
      log.debug("port = " + serverPort);
46
 
 
47
 
 
48
 
      MBeanServer server = MBeanServerFactory.createMBeanServer();
49
 
 
50
 
      // create and register socket server factory service
51
 
      createSSLSocketBuilder();
52
 
 
53
 
      ServerSocketFactoryMBean serverSocketFactoryMBean = createServerSocketFactoryMBean();
54
 
      String serverSocketFactoryObjName = "test:type=serversocketfactory";
55
 
      server.registerMBean(serverSocketFactoryMBean, new ObjectName(serverSocketFactoryObjName));
56
 
 
57
 
      connector = new Connector();
58
 
      server.registerMBean(connector, new ObjectName("test:type=connector,transport=sslsocket"));
59
 
      StringBuffer buf = new StringBuffer();
60
 
      buf.append("<?xml version=\"1.0\"?>\n");
61
 
      buf.append("<config>");
62
 
      buf.append("<invoker transport=\"" + getTransport() + "\">");
63
 
      buf.append("<attribute name=\"serverSocketFactory\">" + serverSocketFactoryObjName + "</attribute>");
64
 
      buf.append("<attribute name=\"serverBindAddress\">" + host + "</attribute>");
65
 
      buf.append("<attribute name=\"serverBindPort\">" + serverPort + "</attribute>");
66
 
      buf.append("<attribute name=\"leasePeriod\">" + 20000 + "</attribute>");
67
 
      buf.append("<attribute name=\"timeout\">" + 0 + "</attribute>");
68
 
      buf.append("<attribute name=\"socket.check_connection\" isParam=\"true\">" + 0 + "</attribute>");
69
 
      buf.append("</invoker>");
70
 
      buf.append("<handlers>");
71
 
      buf.append("  <handler subsystem=\"" + getSubsystem() + "\">" + getServerInvocationHandler().getClass().getName() + "</handler>\n");
72
 
      buf.append("</handlers>");
73
 
      buf.append("</config>");
74
 
      Document xml = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(buf.toString().getBytes()));
75
 
      connector.setConfiguration(xml.getDocumentElement());
76
 
      connector.create();
77
 
      connector.start();
78
 
   }
79
 
 
80
 
   private ServerSocketFactoryMBean createServerSocketFactoryMBean() throws Exception
81
 
   {
82
 
      ServerSocketFactoryMBean serverSocketFactoryMBean = null;
83
 
      SSLServerSocketFactoryService sslServerSocketFactoryService = new SSLServerSocketFactoryService();
84
 
      sslServerSocketFactoryService.setSSLSocketBuilder(socketBuilder);
85
 
      sslServerSocketFactoryService.start();
86
 
      serverSocketFactoryMBean = sslServerSocketFactoryService;
87
 
 
88
 
      return serverSocketFactoryMBean;
89
 
   }
90
 
 
91
 
   private void createSSLSocketBuilder() throws IOException
92
 
   {
93
 
      socketBuilder = new SSLSocketBuilder();
94
 
      socketBuilder.setUseSSLServerSocketFactory(false);
95
 
 
96
 
//      socketBuilder.setSecureSocketProtocol("SSL");
97
 
      socketBuilder.setSecureSocketProtocol("TLS");
98
 
      socketBuilder.setKeyStoreAlgorithm("SunX509");
99
 
 
100
 
      socketBuilder.setKeyStoreType("JKS");
101
 
      String keyStoreFilePath = this.getClass().getResource("../.keystore").getFile();
102
 
//      String keyStoreFilePath = this.getClass().getResource("messaging.keystore").getFile();
103
 
      socketBuilder.setKeyStoreURL(keyStoreFilePath);
104
 
      socketBuilder.setKeyStorePassword("unit-tests-server");
105
 
//      socketBuilder.setKeyStorePassword("secureexample");
106
 
      /*
107
 
       * This is optional since if not set, will use
108
 
       * the key store password (and are the same in this case)
109
 
       */
110
 
//      socketBuilder.setKeyPassword("secureexample");
111
 
      socketBuilder.setKeyPassword("unit-tests-server");
112
 
 
113
 
   }
114
 
 
115
 
 
116
 
   protected String getTransport()
117
 
   {
118
 
      return transport;
119
 
   }
120
 
   
121
 
   protected int getPort()
122
 
   {
123
 
      return port;
124
 
   }
125
 
 
126
 
   protected String getSubsystem()
127
 
   {
128
 
      return "mock";
129
 
   }
130
 
 
131
 
   protected ServerInvocationHandler getServerInvocationHandler()
132
 
   {
133
 
      return new MockServerInvocationHandler();
134
 
   }
135
 
 
136
 
   protected void setUp() throws Exception
137
 
   {
138
 
      org.apache.log4j.BasicConfigurator.configure();
139
 
      org.apache.log4j.Category.getRoot().setLevel(Level.INFO);
140
 
      org.apache.log4j.Category.getInstance("org.jgroups").setLevel(Level.INFO);
141
 
      org.apache.log4j.Category.getInstance("org.jboss.remoting").setLevel(Level.DEBUG);
142
 
      org.apache.log4j.Category.getInstance("test").setLevel(Level.DEBUG);
143
 
 
144
 
      init();
145
 
   }
146
 
 
147
 
   protected void tearDown() throws Exception
148
 
   {
149
 
      if (connector != null)
150
 
      {
151
 
         connector.stop();
152
 
         connector.destroy();
153
 
      }
154
 
   }
155
 
 
156
 
   public static void main(String[] args)
157
 
   {
158
 
      SSLSocketInvokerTestServer server = new SSLSocketInvokerTestServer();
159
 
      try
160
 
      {
161
 
         server.setUp();
162
 
 
163
 
         Thread.sleep(600000);
164
 
      }
165
 
      catch (Exception e)
166
 
      {
167
 
         e.printStackTrace();
168
 
      }
169
 
   }
170
 
 
171
 
}