public void testSslStub() throws Exception {
File keyStoreFile = File.createTempFile("keystore", "ks");
keyStoreFile.deleteOnExit();
decodeHexToFile(keyStoreFile, keyStoreHex);
System.setProperty("javax.net.ssl.keyStore", keyStoreFile.getAbsolutePath());
System.setProperty("javax.net.ssl.keyStorePassword", "password");
File trustStoreFile = File.createTempFile("truststore", "ks");
trustStoreFile.deleteOnExit();
decodeHexToFile(trustStoreFile, trustStoreHex);
System.setProperty("javax.net.ssl.trustStore", trustStoreFile.getAbsolutePath());
System.setProperty("javax.net.ssl.trustStorePassword", "trustword");
// System.setProperty("javax.net.debug", "all");
RMIClientSocketFactory csf = new SslRMIClientSocketFactory();
RMIServerSocketFactory ssf = new SslRMIServerSocketFactory();
Registry reg = LocateRegistry.createRegistry(0, csf, ssf);
int port = getRegistryPort(reg);
System.out.println("Port is " + port);
// Server
Map<String, Object> env = new HashMap<String, Object>();
env.put(RMIConnectorServer.RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE, csf);
env.put(RMIConnectorServer.RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE, ssf);
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///");
RMIServerImpl rmiServerImpl = new RMIJRMPServerImpl(port, csf, ssf, null);
RMIConnectorServer cs =
new RMIConnectorServer(url, null, rmiServerImpl, mbs);
cs.start();
reg.bind("jmxrmi", rmiServerImpl);
// Client
Registry creg = LocateRegistry.getRegistry(
InetAddress.getLocalHost().getHostAddress(), port, csf);
RMIServer rmiServerStub = (RMIServer) creg.lookup("jmxrmi");
assertEquals(RMIServerImpl_Stub.class, rmiServerStub.getClass());
SObject sstub = (SObject) SerialScan.examine(rmiServerStub);
List<SEntity> annots = sstub.getAnnotations();
/* The annotations consist of the data written for a UnicastRef2
* before the client socket factory; the client socket factory;
* and the data written after the factory.
*/
assertEquals(3, annots.size());
SObject factory = (SObject) annots.get(1);
assertEquals(SslRMIClientSocketFactory.class.getName(), factory.getType());
}
java类javax.management.remote.rmi.RMIServerImpl的实例源码
JmxSslTest.java 文件源码
项目:serialysis
阅读 22
收藏 0
点赞 0
评论 0