首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >授予rt.jar权限

授予rt.jar权限
EN

Stack Overflow用户
提问于 2013-03-05 02:26:44
回答 1查看 738关注 0票数 0

我们没有使用默认的Java安全策略,因为它允许我们想要禁止的东西。所以我们有自己的政策文件,通常不允许从任何地方读取.

但这意味着rt.jar本身无法在需要时从文件中读取,这是不好的。

因此,我添加了以下规则:

代码语言:javascript
复制
grant codeBase "file:${java.home}/lib/rt.jar" {
  permission java.security.AllPermission;
};
grant codeBase "file:${java.home}/jre/lib/rt.jar" {
  permission java.security.AllPermission;
};

我不确定java.home是属于JDK还是JRE,所以我设置了两者。但是当我运行我的测试时,当rt.jar试图从文件中读取时,我仍然会得到一个安全异常。

显然我做错了什么,所以我希望别人能发现我的错误。

我试过:

  • /后添加file:
  • jar:前添加file:,在.jar后添加!/-
EN

回答 1

Stack Overflow用户

发布于 2013-03-06 02:09:53

我认为您无法从系统类中删除权限(null ClassLoadernull ProtectionDomain,所以没有CodeSource)。

我猜您误解了Java 2安全模型(很容易做到,因为没有人真正理解它)。安全检查是通过检查堆栈中的所有帧(粗略地说)来完成的(除了少数几个选择方法)。测试的每个帧都必须具有权限。如果堆栈中只有一个没有权限的帧,那么检查就失败了。

(在咨询SecurityManager之前,您可以有一个总是拒绝某些权限的AccessController。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15214765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档