为Java安全策略指定远程codeBase

时间:2010-09-15 12:25:41

标签: java rmi codebase security-policy

我有一个客户端安全策略,其中包含一个授予权限的语句。我希望能够指定它仅授予RMI服务器的权限集。例如,这有效:

grant{    
    //my permissions    
};

但我无法弄清楚如何链接权限集,以便它们适用于我在服务器上的代码库。实际上什么都没有,只要它绑在服务器上就可以了。我试过了:

grant codeBase "file://hostname/-"{    
    //my permissions   
};

主机名是机器的名称或IP,包括和没有端口号。但这不起作用,也不使用http而不是文件。如果我理解到目前为止我所读到的内容,那么最后的连字符应该将权限应用于服务器上的任何内容。任何人都知道我需要做些什么才能让它发挥作用?

感谢。

运行服务器时指定的代码库:

-Djava.rmi.server.codebase=file://home/me/PageServer/build/classes/  pageserver.LoginService pageserver.PlannerService 

2 个答案:

答案 0 :(得分:1)

本地JVM在哪里获取应该被授予权限的代码?

如果它从服务器上的HTTP代码库下载代码,您可以使用以“http:”开头的URL。

如果是本地代码,您可以使用以“file:”开头并以本地路径结尾的URL。

免责声明:我已经为Jini编写了安全文件,它是在RMI上构建的,已经有几年了。为我错过的任何事情道歉。

答案 1 :(得分:0)

对代码库使用JAR,并在-Djava.rmi.server.codebase中指定的.policy文件中准确指定HTTP URL。