加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java安全策略:根据类加载器授予访问权限

发布时间:2020-12-15 02:24:50 所属栏目:Java 来源:网络整理
导读:我有一个应用程序加载插件(普通jar文件)并从中运行代码.插件使用URLClassLoader加载.我想阻止这些插件访问文件和其他资源,同时保留我自己的代码的所有权限. 以下是插件代码与我自己的应用程序及其库不同的两个功能: 1)它由为此目的创建的URLClassLoader加载
我有一个应用程序加载插件(普通jar文件)并从中运行代码.插件使用URLClassLoader加载.我想阻止这些插件访问文件和其他资源,同时保留我自己的代码的所有权限.

以下是插件代码与我自己的应用程序及其库不同的两个功能:
1)它由为此目的创建的URLClassLoader加载.
2)将其jar文件复制到特定目录,URLClassLoader从中获取它们.

但我不知道如何使用这两个功能来制定策略规则.类策略器根本不能在策略规则中使用(可理解,它是在运行时创建的).该目录可用于授予特定权限,但不能将其删除.似乎没有“来自任何地方的代码除了这个目录”的语法.

还有其他选择吗?

解决方法

子类URLClassLoader.在不使用URLClassLoader.newInstance的情况下,在缺少的安全位中添加回来.覆盖URLClassLoader.getPermissions(CodeSource)以返回适当的权限.

如果父类加载器只具有插件[静态]使用的公共类型,那可能是最好的.应该从不同的子类加载器加载主应用程序. package.access安全属性也可以隐藏实现类.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读