我正在尝试对 JSR-223 进行沙箱处理。具体来说,我不希望任何脚本可以访问我的任何课程。(我听说 Rhino 可以用 ClassShutter 做到这一点,但我想一般地做到这一点。即适用于 JSR-223 的所有脚本引擎)。
我首先尝试使用该AccessController.doPrivileged
解决方案,根本不传递任何权限。它适用于大多数权限,但脚本仍然可以访问我所有的公共类(它似乎忽略了“包访问”权限......?)。
我找到了这个。我的问题是:如何在脚本引擎上安装自定义 ClassLoader?(或者如果必须,我如何全局替换 ClassLoader?)