免责声明:我不是Java安全API的专家,因此可能会有更好的方法来做到这一点。
我为基于Java的开源企业CMS
Alfresco工作,我们实现了与您所描述的类似的东西。我们希望允许脚本编写,但仅向脚本引擎公开Java
API的子集。
我们选择Rhino
Engine进行Javascript脚本编写。它允许您控制哪些API可以使用Javascript,还可以选择哪些类可用,哪些不可用。根据我们的工程师,间接费用大约为10%-不错。
除此之外,这也与您有关,在Java方面,我们使用Acegi(现在称为Spring
Security),并使用AOP对特定用户可以调用的方法进行基于角色的控制。授权非常有效。因此,实际上,首先通过Javascript访问我们的应用程序的用户首先具有受限制的API,然后可以根据授权进一步限制该API。因此,您可以使用AOP技术进一步限制可以调用的方法,从而允许在其他脚本语言(例如Groovy等)中公开该方法。我们也正在添加这些方法,并确信我们的底层Java
API保护用户免受未经授权的访问。



