我正在使用GroovyShell在JVM中运行Groovy脚本。 GroovyShell使用了几个AST定制器和一些定义DSL的预定义方法。但是我通过hasard发现可以在任何groovy脚本中编写“run()”,使其在无限循环中运行。
有没有人知道如何禁止在已经运行的脚本中调用“run()”?
我试图覆盖脚本的invokeMethod并设置一个标志,以便在脚本运行时禁用run方法...但无论我做什么,我仍然可以在脚本中调用此run()方法,它似乎没有通过脚本的invokeMethod。
提前感谢您的帮助
答案 0 :(得分:0)
将此行添加到您执行的每个脚本中:
this.metaClass.run { null }