有没有办法将 Gremlin 表达式限制为 Gremlin API?我想将 gremlin 作为一个规则引擎的一部分嵌入,但是在过滤器中调用任何内容的可能性是有风险的。
g.v(1).outE.filter{ new Socket('localhost', 8080). ... }
有没有办法将执行限制在一组安全的接口上?
有没有办法将 Gremlin 表达式限制为 Gremlin API?我想将 gremlin 作为一个规则引擎的一部分嵌入,但是在过滤器中调用任何内容的可能性是有风险的。
g.v(1).outE.filter{ new Socket('localhost', 8080). ... }
有没有办法将执行限制在一组安全的接口上?
一种方法可能是研究 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/
这将允许您编写过滤器,以防止脚本获取对它们不应该引用的对象的引用。