我正在编写一个供公司内部使用的 java webstart 应用程序。它使用 JSch 连接并允许将端口转发到我们数据中心之一的服务器。我不希望用户在每次运行应用程序时都看到此消息:
http://img33.imageshack.us/img33/5103/permissionsr.jpg
有什么办法可以压制这条消息吗?
我正在编写一个供公司内部使用的 java webstart 应用程序。它使用 JSch 连接并允许将端口转发到我们数据中心之一的服务器。我不希望用户在每次运行应用程序时都看到此消息:
http://img33.imageshack.us/img33/5103/permissionsr.jpg
有什么办法可以压制这条消息吗?
您是否真的需要从程序外部转发连接,或者您的程序本身是否是唯一使用转发端口的程序?
如果是前者,那么能做的事情并不多。您可能会尝试以不同的方式配置权限,但随后您会收到有关这些权限的问题。或者您可以在客户端的 JRE 上设置权限,但我不确定该怎么做。
如果您的 Webstart 程序本身试图通过 SSH 连接访问内部服务器,并且当前正在向您的 JSch 会话正在侦听的本地端口打开一个 Socket,那么您可以做得更好:
与其打开 Socket,不如打开一个direct-tcp 通道并使用它的输入和输出流。现在不需要打开本地端口,也不会有安全问题。
ChannelDirectTCPIP channel = (ChannelDirectTCPIP)gateway.openChannel("direct-tcpip");
channel.setHost(host);
channel.setPort(port);
// important: first create the streams, then connect.
InputStream iStream = channel.getInputStream();
OutputStream oStream = channel.getOutputStream();
channel.connect();
// now write to oStream and read from iStream
我用它通过另一个 JSch 会话来隧道 JSch 会话,请参阅我的 ProxySSH 示例。