MVEL:如何使java.lang。*类不包含在表达式中?

ccl*_*eve 5 mvel

我正在尝试对MVEL表达式评估进行沙箱测试。不幸的是,默认情况下,MVEL包含表达式语言中的所有java.lang。*类,因此用户可以调用“ Runtime.exit()”并杀死整个系统。

如何排除未使用addImport()显式添加的所有类?

我还无法制作VariableResolvers的正面或反面。

小智 3

据我所知,这是不支持的。

前段时间我在公司的一个项目中遇到了这个需求。我们必须对 MVEL 进行相当多的更改,以引入一种配置自定义策略来控制对类型和方法的访问的方法。问题是您还可以通过其完全限定名称访问任何类,因此这不仅仅是删除默认导入的问题。不幸的是,我不拥有使其可用的代码。