Java Rhino разрешить доступ к Java из безопасного контекста - PullRequest
0 голосов
/ 10 мая 2018

Я хочу создать среду javascript для песочницы и ограничить доступ ко всем классам java, кроме того, который я указываю. Я пытаюсь добиться этого путем создания Context с использованием Context.initSafeStandardObjects()

Есть ли способ разрешить использование других классов в javascript? Если я создаю контекст с Context.initStandardObjects()

Я могу получить доступ ко всем Java-классам, а это не то, что я хочу.

1 Ответ

0 голосов
/ 11 мая 2018

Я нашел решение.Вы можете добавить экземпляр класса java в javascript, используя:

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

Чем вы можете использовать методы этого класса внутри javascript, даже если вы используете контекст init, используя initSafeStandardObjects

Object result = cx.evaluateString(scope, "test.sampleMethod()", "<cmd>",1, null);
System.out.println(cx.toString(result));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...