Java Rhino允许从安全的Context访问java

时间:2018-05-10 13:34:54

标签: java sandbox rhino

我想创建沙箱javascript环境并限制对java类的所有访问,但是我指定的那个。我试图通过使用Context

创建Context.initSafeStandardObjects()来实现这一目标

有没有办法让javascript使用其他类? 如果我使用Context.initStandardObjects()

创建上下文

我可以访问不是我想要的所有java类。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。您可以使用以下命令将一个java类实例添加到javascript中:

Object wrappedTest = Context.javaToJS(test, scope);
ScriptableObject.putProperty(scope, "test", wrappedTest); //Where text here is name of the variable

你可以在javascript中使用这个类的方法,即使使用initSafeStandardObjects

的u init上下文
Object result = cx.evaluateString(scope, "test.sampleMethod()", "<cmd>",1, null);
System.out.println(cx.toString(result));