我有一些较旧的代码,它们不使用SecurityManager,但确实使用了RMI。据我所知,RMI需要一个安全管理器,但是代码似乎可以在同一台机器上和两台机器之间正常工作和运行。我在1.5上测试过这个东西,但没有在1.6上测试过。
我找不到任何资源来讨论什么时候需要SecurityManager,什么时候不需要,或者这个要求是否随着Java版本的变化而改变。
我将更新代码以使用一个,我只是想了解它背后的细节。
感谢您的反馈!
发布于 2010-02-20 03:16:59
仅当RMI从远程计算机下载代码时才需要安全管理器。如果客户端和服务器都使用相同的类,则不需要它。
来自RMI Tutorial
安全管理器确定下载的代码是否有权访问本地文件系统或是否可以执行任何其他特权操作。
如果RMI程序未安装安全管理器,则RMI将不会为作为远程方法调用的参数或返回值接收的对象下载类(从本地类路径除外)。此限制可确保下载的代码执行的操作受安全策略的约束。
https://stackoverflow.com/questions/2298853
复制相似问题