我想配置jdk,以便如果我要进行java -jar myjar.jar
,则myjar
仅在已被(由特定签名者签名)时执行。我找到了this的答案,但是我不确定编辑策略文件是否是解决方案。根据我对here的理解,似乎您只能授予/限制应用程序读取/写入某些目标的权限,而不能授予/限制应用程序本身运行的权限。例如,使用策略文件docs中的示例,我可以添加
grant signedBy "Duke" {
permission java.io.FilePermission "/tmp/*", "read,write";
};
允许“杜克”签名的jar读取/写入/tmp/
中的文件,但我无法添加限制,以使“杜克”签名的只有个jar可以在第一名。
我知道可以使用jarsigner -verify
来验证jar的能力,但是我希望有一个配置Java运行时本身的解决方案。是否可以使用策略文件或其他方法来实现这一目标?
谢谢
答案 0 :(得分:0)
据我所知,使用安全策略是不可能的。在当前的Java安全概念中,禁止执行JAR毫无意义。
但是,您可以扩展Java的安全管理器类以实现所需的功能。但是请注意,这可能不是一个简单的任务。