我想动态加载一组jar或类(即在运行时加载的插件)。同时,我想限制这些插件在JVM中能够做什么。对于测试用例,我想将它们限制在几乎所有内容中(现在我只是允许读取一个System.getProperty值)。
我目前正在使用安全策略文件,但是我在代码库中为一个文件夹或包指定策略时遇到困难,而不是另一个。
以下是我的政策现状:
grant codeBase "file:/home/max/programming/java/plugin/plugins/" {
permission java.util.PropertyPermission "java.version", "read";
};
grant codeBase "file:/home/max/programming/java/plugin/api/" {
permission java.security.AllPermission;
};
其中(出于测试目的),插件包和文件夹中的所有文件都受到限制,但api文件夹中的类不受限制。这可能吗?我是否必须创建自定义类加载器?有没有更好的方法来做这件事?
感谢。