2013-04-25 39 views
2

我正在为公司内部使用编写一个java webstart应用程序。它使用JSch连接并允许端口转发到我们的数据中心之一的服务器。我不希望用户每次看到这个消息时,运行应用程序:阻止Java从请求权限接受连接

http://img33.imageshack.us/img33/5103/permissionsr.jpg

有什么办法我取消此消息?

+0

您是否确实需要从程序外部转发连接,或者您的程序本身是唯一使用转发端口的连接? – 2013-05-11 16:29:15

回答

1

您是否确实需要从程序外部转发连接,或者您的程序本身是唯一使用转发端口的连接?

如果前者,没有什么可以做的。您可能会尝试以不同的方式配置权限,但是您会针对这些权限提出问题。或者您可以在客户端的JRE上设置权限,但我不确定这将如何完成。

如果Webstart的程序本身正试图通过SSH连接来访问内部服务器,目前正在建立一个socket到你的JSch会话监听本地端口,你可以做的更好:

与其打开的一个Socket,打开一个direct-tcp channel并使用它的输入和输出流。现在没有本地端口需要打开,并且没有安全问题。

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会话,see my ProxySSH example

+0

多酷,谢谢你的这个想法 – 2013-05-13 16:11:28