Я создаю программу песочницы с помощью nashorn js-интерпретатора и использую минималистский менеджер безопасности для ограничения того, что он может сделать.
Проблема заключается в том, когда я вызываю engine.eval(reader)
Я получаю исключение из null указателя.
Я знаю, что читатель работает, потому что я смог распечатать весь файл по буквам. Я знаю, что это проблема с разрешениями, потому что если я добавлю AllPermissions, тогда все будет работать.
Итак, какие разрешения мне нужны для запуска скрипта в nashorn?Nashorn NullPointerException с SecurityManager
По-видимому, я испортил свои начальные тесты, это не только с файловым считывателем, но также происходит, когда я жестко программирую строку.
Есть определенные вещи, которые я не хочу, чтобы Нашорн имел доступ к таким, как отражение, поэтому AllPermission не вариант. – user2752635
Nashorn требует разрешения на создание ClassLoader. Если код может создавать классы ClassLoader и Load, он эффективно получает AllPermission. Если вы беспокоитесь о том, что скрипты получают их, вам не нужно. Скомпилированные классы скриптов получают только минимальные разрешения для песочницы, если только они не указаны в файле политики (по URL-адресу скрипта). –
http://stackoverflow.com/questions/20793089/secure-nashorn-js-execution Будет иметь отражение, если RuntimePermission ("nashorn. JavaReflection "). У меня работающий nashorn работает с минимальными разрешениями, которые работают. – user2752635