我正在用nashorn js解释器创建一个沙箱程序,并使用一个极简的安全管理器来限制它所能做的事情。
问题是,当我调用engine.eval(reader)时,会得到一个空指针异常。
我知道读者工作是因为我能逐个打印整个文件。我知道这是一个权限问题,因为如果我添加了AllPermissions,那么一切都能正常工作。
那么,在nashorn中运行脚本需要哪些权限呢?
显然,我把最初的测试搞砸了,这不仅仅是文件阅读器的问题,当我对字符串进行硬编码时也会发生这种情况。
发布于 2014-10-14 20:56:53
我发现了问题。显然,我需要这个许可才能经营纳什恩:
"/usr/lib/jvm/java-8-openjdk/jre/lib/ext/nashorn.jar",java.io.FilePermission“读”
发布于 2014-10-21 03:00:23
实际上,nashorn.jar是一个扩展jar。使用默认的安全策略,它将获得AllPermission。如果您用自己的策略替换它,我认为您需要给AllPermission - nashorn.jar需要能够创建新的类加载器,访问受限的包等等。
https://stackoverflow.com/questions/26350330
复制相似问题