【发布时间】:2017-05-16 10:47:43
【问题描述】:
我已经在使用 Java 8,它是 Nashorn javascript 引擎。在我的应用程序中,我出于各种目的从 Java 类访问 JavaScript 脚本文件。然而,也可以从 javaScript 代码访问 Java 类。但由于我的应用程序中的 JavaScript 也可以由第三方编写,我想限制它们(JS 脚本)访问 Java 模块。 (特别禁止部分Java类)
我不想限制对Java类的所有访问,只是想寻找一种方法来限制或禁止某些特定的Java类。
在 Nashorn 中,我们可以通过使用 ClassFilters(覆盖 'exposeToScripts()' 方法)来做到这一点,如下所示。
class MyCF implements ClassFilter {
@Override
public boolean exposeToScripts(String s) {
if (s.compareTo("myPackage.MyClass") == 0) return false;
return true;
}
}
但是我们如何使用 Java 安全管理器来做同样的事情,或者使用 ClassFilter(上面提到的)的方式足以捕获和限制所有不需要的 Java 类访问。
【问题讨论】:
标签: javascript java nashorn securitymanager