【发布时间】:2013-11-07 06:29:01
【问题描述】:
我正在寻找一种安全的方式来传输 RMI 流量。 在我的应用程序(java Webstart)中,我必须假设唯一打开的端口是端口 80。
我查看了 rmi 的 att socketfactories,但我真的需要代理吗?
我需要在客户端完成所有隧道传输。 我试图通过的唯一防火墙是在客户端。 我无法使用上述端口范围打开 1099。 很高兴看到一些实现。 谢谢!
【问题讨论】:
-
我建议您询问客户端网络管理员在关闭出站端口时要获得什么安全性,并让他们对端口 1099 进行例外处理,该端口在 1995 年左右在 IANA 为 RMI 保留。
-
但即使有可能,RMI 之后会使用随机端口吗?如何指定 RMI 只能使用 1099?
-
你考虑过 Spring 的 HTTPInvoker (docs.spring.io/spring/docs/3.2.x/spring-framework-reference/…)。它非常易于使用,超过 80 端口,并允许您以 RMI 样式针对接口进行编程。
-
好吧,我已经做到了:我需要在本地为 RMI 创建一个 java 代理,然后使用 TunnelSocketFactory 来使用我的代理。此代理应在客户端的 RMI 应用程序旁边运行。
标签: java sockets rmi java-web-start