не могу добавить внешний скрипт js в оценщик javascript в наборах потоков

Я использую внешний javascript внутри оценщика javascript в наборах потоков. Но когда я пытаюсь загрузить внешний код, я получаю следующую ошибку. Как мне это решить. Спасибо

ОШИБКА SafeScheduledExecutorService — неперехваченный бросок из com.streamsets.pipeline.lib.executor.SafeScheduledExecutorService$SafeCallable@69717812: com.streamsets.datacollector.util.PipelineException: PREVIEW_0003 — обнаружена ошибка при предварительном просмотре: java.security.AccessControlException: доступ запрещен («java .io.FilePermission" "/opt/streamsets-datacollector-user-libs/test.js" "read") com.streamsets.datacollector.util.PipelineException: PREVIEW_0003 — обнаружена ошибка при предварительном просмотре: java.security.AccessControlException: доступ запрещен ("java.io.FilePermission" "/opt/streamsets-datacollector-user-libs/test.js" "прочитано")


person Tamizharasan    schedule 23.07.2018    source источник


Ответы (1)


Как я уже ответил в другом месте вам потребуется добавить политику безопасности, чтобы иметь возможность загружать файл сценария. Добавьте следующее к $SDC_CONF/sdc-security.policy :

// Set global perm so that JS can load scripts from this directory
// Note - this means any code in the JVM can read this dir!
grant {
  permission java.io.FilePermission "/opt/streamsets-datacollector-user-libs/-", "read";
};

Вам потребуется перезапустить Data Collector, чтобы изменения в файле политики безопасности вступили в силу.

person metadaddy    schedule 23.07.2018
comment
По умолчанию файл политики имеет следующую строку // custom stage library directory grant codebase "file:///opt/streamsets-datacollector-user-libs/-" { permission java.security.AllPermission; }; Это означает, что если я добавлю нужный файл в этот каталог. Должен ли файл загружаться в моем процессоре оценки js без перезагрузки ?? - person Tamizharasan; 24.07.2018
comment
Это другое разрешение, то есть код, загруженный из /opt/streamsets-datacollector-user-libs, может делать что угодно. Это отличается от разрешения, которое я описал, в котором говорится, что любой код может загружать файлы из /opt/streamsets-datacollector-user-libs. - person metadaddy; 24.07.2018
comment
благодарю за разъяснение - person Tamizharasan; 24.07.2018
comment
Используйте этот блок кода, если вы хотите использовать HTTP-вызов внутри вашего оценщика javascript. https://gist.github.com/billybong/a462152889b6616deb02 - person Tamizharasan; 25.07.2018