隔离Java中的函数执行

时间:2018-10-07 19:34:11

标签: java classloader

我有此代码:

JarByteClassloader loader = new JarByteClassloader(jar);
Class c = loader.loadClass(classToLoad);
Thread.currentThread().setContextClassLoader(loader);
JarEntryObject jarEntry = (JarEntryObject) c.newInstance();
Response response = jarEntry.execute(module);

是否可以:

  • 限制execute()函数内部的代码可以访问的内容,例如,封闭函数内部的代码应该不能从其他已加载的JarEntryObject的(隔离)访问其他对象
  • 并且不应能够访问,读取或修改应用程序和系统变量
  • 应该无法创建将创建网络端口的进程/线程

因此execute函数只能访问的是它创建的对象和传递到其中的module对象。

0 个答案:

没有答案