rmi java.security.policy access denied

吃可爱长大的小学妹 提交于 2020-01-06 15:57:06

问题


I am new to RMI topic in java and i wana to create client server applicaiton using RMI,

i followed this tutorial found in this link : RMI Tutorial using eclipse

but i am using netbeans ,and here is server code:

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);
                }
           }
}

and here security.policy :

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

then i run the rmiregistry & in the terminal. then i run the server and here what is the output exactly :

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

Is there something i miss it, like a config for vm or something ???.....


回答1:


I had the same problem. I have fixed it following these steps:

  1. I have created a policy file, I named it security.policy

with the following content

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

2- Add the following line of code just before binding the remote object to the rmiregistry.

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




回答2:


You need to set the policy file before you install the SecurityManager.



来源:https://stackoverflow.com/questions/27096163/rmi-java-security-policy-access-denied

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!