Гремлин, безопасный режим? (Нет звонков JDK)
Есть ли способ ограничить выражения Gremlin только API Gremlin? Я хотел бы встроить гремлин как часть одного механизма правил, но возможность вызывать что угодно, например, в фильтрах, является риском.
g.v(1).outE.filter{ new Socket('localhost', 8080). ... }
Есть ли способ ограничить выполнение каким-то безопасным набором интерфейсов?
1 ответ
Одним из методов может быть изучение возможностей Groovy при управлении выполнением сценариев с помощью безопасности JVM. Возможно, эти ссылки будут полезны:
http://groovy.codehaus.org/Security http://www.chrismoos.com/2010/03/24/groovy-scripts-and-jvm-security/
В качестве альтернативы безопасности JVM есть также этот настройщик компиляции:
http://groovy-sandbox.kohsuke.org/
что позволит вам создавать фильтры, которые не позволят скрипту получать ссылки на объекты, которые они не должны.