SSHConnectionTest.java 文件源码

java
阅读 21 收藏 0 点赞 0 评论 0

项目:HeliosStreams 作者:
/**
 * Tests loading an array of SSHConnections from JSON and establishing a basic connection
 * @throws Exception thrown on any error
 */
@SuppressWarnings("static-method")
@Test
public void testJMXMPTunnel() throws Exception {
    System.clearProperty(SSHD_PORT_PROP);
    final ApacheSSHDServer sshdServer = ApacheSSHDServer.getInstance();     
    final int[] ports = setLocalPorts();
    System.setProperty(SSHD_PORT_PROP, "" + sshdServer.getPort());
    final JMXMPConnectorServer jmxmp = JMXHelper.fireUpJMXMPServer(0);
    final int remotePort = jmxmp.getAddress().getPort();
    final String agentId = JMXHelper.getAgentId();
    log("Actual Agent ID: [" + agentId + "]");
    try {           
        final URL url = SSHConnectionTest.class.getClassLoader().getResource(TEST_JSON);
        final SSHConnection[] connections = SSHTunnelManager.parseConnections(url);
        log(Arrays.deepToString(connections));
        for(int i = 0; i < connections.length; i++) {
            connections[i].authenticate();
            LocalPortForwarder lpf = (LocalPortForwarder)PrivateAccessor.invoke(connections[i], "createPortForward", new Object[]{0, "localhost", remotePort}, int.class, String.class, int.class);
            final int localPort = lpf.getLocalPort();
            final JMXConnector jmxConnector = JMXHelper.getJMXConnection("service:jmx:jmxmp://localhost:" + localPort, true, null);
            final MBeanServerConnection server = jmxConnector.getMBeanServerConnection();
            final String readAgentId = JMXHelper.getAgentId(server);
            log("Agent ID: for [" + connections[i] + "] : [" + agentId + "]");
            Assert.assertEquals("Mismatch on expected agent ids", agentId, readAgentId);
            jmxConnector.close();
        }
    } finally {
        jmxmp.stop();
        sshdServer.stop(true);
        System.clearProperty(SSHD_PORT_PROP);
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号