遇到问题获取RMI安全策略工作

问题描述:

我在遇到RMI安全策略时遇到问题。我在服务器和客户端都有一个.policy文件,每个文件都运行一个SecurityManager。遇到问题获取RMI安全策略工作

当我尝试运行客户端失败。我的政策文件授予一切atm。继承人的内容:

grant { permission java.security.AllPermission }; 

我在JAR文件的根目录下的文件client.policy(我试过用罐子外的政策文件,运行它太)。然后我运行这个客户端:

java -jar PagePlanner.jar -Djava.security.policy=client.policy -Djava.rmi.codebase=http://192.168.0.88:2077/home/me/NetbeansProjects/PageServer/dist/PageServer.jar -Djava.security.debug=access 

指定我的策略文件和我的代码库的路径。我不确定这些是否正确。我也试着设置调试开关,因为我读的地方,应该给我说说怎么回事错了额外的信息,但它似乎并没有做出difference.Heres输出,当我运行客户端:

Exception in thread "main" java.security.AccessControlException: access denied (java.awt.AWTPermission setWindowAlwaysOnTop) 
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) 
    at java.security.AccessController.checkPermission(AccessController.java:546) 
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 
    at java.awt.Window.setAlwaysOnTop(Window.java:2038) 
    at gui.LoginForm.<init>(LoginForm.java:59) 
    at main.Main.main(Main.java:21) 

从中指出客户端挂起。任何想法我在这里做错了吗?服务器端的策略设置几乎相同。如果有帮助,我可以发布详情。

干杯。

使用-Djava.security.debug =访问失败运行客户端。很可能你的.policy文件没有找到。

顺便说一句,你不需要在客户端设置代码库,除非客户端有自己的抽象类/接口实现,服务器不知道它们。代码库通常只在服务器上设置,以便注释下载到客户端和注册表的类。

+0

出于某种原因-Djava.security.debug =访问,失败没有给我任何输出。不知道为什么,最终我修改了系统范围的策略文件,并暂时放弃了客户端交换机。然后我遇到了几个你似乎已经在其他网站上回答过的问题 - 非常感谢:) – 2010-09-15 11:59:30

+0

EJP是正确的java.security.debug参数值,但语法略有不同。尝试这样:-Djava.security.debug =“访问,失败” – Florin 2011-02-09 15:45:03

+0

@弗洛林:我从来没有使用这些引号。这只会是一个用逗号分隔参数的命令处理器(shell)的问题。大约32年来我没有使用过其中之一;-) – EJP 2011-02-11 06:07:33