RMI - 为啥有 client.policy

Posted

技术标签:

【中文标题】RMI - 为啥有 client.policy【英文标题】:RMI - Why there is a client.policyRMI - 为什么有 client.policy 【发布时间】:2014-05-05 08:02:38 【问题描述】:

我在网上搜索了一段时间,但没有找到这个问题的答案。为什么需要 client.policy 文件?

也许有人可以将我指向该主题的 Oracle 页面。我只发现了 abondon 网站。

虽然服务器需要指定访问级别,为什么我还要把这个文件放在我的客户端?

我假设客户端尝试连接到服务器,并且服务器决定是否允许访问。将定义放在客户端对我来说有点奇怪。

【问题讨论】:

【参考方案1】:

为什么需要 client.policy 文件?

客户端需要 .policy 文件的唯一情况是它在 SecurityManager, 下运行,而在 RMI 中需要这样做的唯一时间是您使用 RMI 代码库功能将类文件下载到客户端.

与服务器的访问控制无关。

【讨论】:

我想要的只是启动一个 RMI 服务器并允许本地访问它。我读了几个答案,告诉我很混乱的东西。也许是因为 Java 中的 RMI 发生了变化。现在我在服务器和客户端站点上使用 SecurityManger。两者都使用相同的策略授予 权限 java.security.AllPermission; ;如果可能的话,我喜欢在客户网站上省略它。 自 1998 年以来,RMI 的基本要素没有改变。我再说一遍。如果您不使用代码库功能,而大多数人不使用,则您不需要安全管理器,因此也不需要策略文件。在任一端。 谢谢,这是我正在寻找的答案 ;-)

以上是关于RMI - 为啥有 client.policy的主要内容,如果未能解决你的问题,请参考以下文章

Corba 的 RMI 是不是有任何“远程异常”?

RMI 绑定问题(从 Windows RMI 服务器到 Ubuntu RMI 注册表)

RMI 服务器如何响应多个 RMI 客户端调用?

来自 Spring 应用程序的旧式 RMI 调用

什么是 RMI 注册表

RMI 客户端无法查找服务器 - java.rmi.UnmarshalException