如何允许最终用户在特定安全约束下在JEE环境中运行脚本?

时间:2013-12-03 17:17:16

标签: java groovy beanshell securitymanager

我的JEE应用程序在tomee下运行并允许用户编写他/她自己的脚本并从web gui运行,但我想限制某些操作,例如System.exit(1)。

有关此问题的讨论可以在beanshell2论坛中找到 - 请查看 - http://code.google.com/p/beanshell2/issues/detail?id=15

任何可在JVM中运行的可编写脚本的语言都可以,但我需要这种级别的控制。我的第一次尝试是使用beanshell,但正如我们从上面的讨论中看到的那样,这似乎不是一种选择。

我想避免使用更多深奥的语言,因为最终用户是技术性的,但我不能让他/她学习一种未知的编程语言只是为了写一个脚本:-) [或者我可以,如果我不喜欢找不到任何有用的选项]

我怎么能得到它? Groovy的?可能还有其他基于JVM的脚本语言吗?

2 个答案:

答案 0 :(得分:0)

很久以前我使用过Rhino。它允许将JavaScript运行到Java App(或服务器端)。您可能需要手动管理安全问题。

不确定这是您要找的内容,但它可以提供帮助:https://developer.mozilla.org/en-US/docs/Rhino

答案 1 :(得分:0)

Groovy在CompilerConfiguration中拥有强大的力量。您可以选择可用的导入和许多其他东西。允许的内容可以使用SecureASTCustomizer

列入白名单或列入黑名单