java - rmi java.security.policy 访问被拒绝

标签 java permissions rmi server

我是 Java 中的 RMI 主题新手,我想使用 RMI 创建客户端服务器应用程序,

我按照此链接中找到的教程进行操作:RMI Tutorial using eclipse

但是我正在使用netbeans,这是服务器代码:

import java.rmi.*;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.*;   

public class AdditionServer {
       public static void main (String[] argv) {
           try {
               if (System.getSecurityManager() == null)
                            {
                                System.setSecurityManager(new SecurityManager());
                            }   
                           String policy="file:/home/user/NetBeansProjects/RMIServerSide/security.policy";

                           System.setProperty("java.security.policy",policy);

               Addition Hello = new Addition();

                                    System.out.println("test\n");
                            Registry reg=LocateRegistry.createRegistry(1099);

               reg.rebind("rmi://localhost/ABC", Hello);

               System.out.println("Addition Server is ready.");
               }catch (Exception e) {
                   System.out.println("Addition Server failed: " + e);
                }
           }
}

这里是 security.policy :

grant codeBase "/home/user/NetBeansProjects/RMIServerSide/build/classes/" {
    permission java.security.AllPermission;
};

然后我在终端中运行 rmiregistry & 。 然后我运行服务器,这里的输出到底是什么:

Addition Server failed: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.security.policy" "write")

有什么我想念的吗,比如虚拟机的配置之类的???.....

最佳答案

我也遇到了同样的问题。我已按照以下步骤修复了该问题:

  1. 我创建了一个策略文件,将其命名为 security.policy

包含以下内容

grant {
    // Allow everything for now
    permission java.security.AllPermission;
};

2- 在将远程对象绑定(bind)到 rmiregistry 之前添加以下代码行。

System.setProperty("java.security.policy","file:./security.policy");

关于java - rmi java.security.policy 访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27096163/

相关文章:

python - Windows 调度程序不断询问我是否要继续使用 Python.exe 打开 .py 文件

java.lang.ClassCastException : com. sun.proxy.$Proxy1 无法转换为

java - JPA - InheritanceType.Joined 生成错误的表

java - 如何将文件添加到 EAR META-INF 文件夹 - Maven

java - 任何工具来检查 servlet 过滤器是否工作

linux - 如何在 bash 脚本中切换到和退出 root

java - Spring 线静态类

linux - yarn 安装 : EACCES: permission denied, 取消链接 yarn 完整性

java - Java RMI 服务器在哪里监听?

java - JavaRMI 应用程序中的 SSL 握手错误