Java - 我如何沙箱化 ScriptEngineManager?

Java - How do I sandbox ScriptEngineManager?

我可以使用内置 ScriptEngineManager 轻松执行 Java 脚本。但是,它给JavaScript完全权限,这对我来说是个大问题。

它允许危险的命令,例如:

如何在 Java 脚本引擎中限制 Java 函数的可用性?

默认情况下,沙箱阻止访问所有 Java 类。

NashornSandbox sandbox = NashornSandboxes.create();
sandbox.allow(File.class);  
sandbox.eval("var File = Java.type('java.io.File'); File;")

delight-nashorn-sandbox