我想动态加载一组 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;
};
其中(出于测试目的),plugins 包和文件夹中的所有文件都受到限制,但 api 文件夹中的类则不受限制。这可能吗?我必须创建自定义类加载器吗?有没有更好的方法来做到这一点?
谢谢。
最佳答案
这个答案解决了我的问题: Sandbox against malicious code in a Java application
关于java - 根据安全策略限制动态加载的类和 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2626981/