我正在写一个Java web应用程序,我想让用户执行基本的PDF报告。通常情况下,我会使用Jasper报告来完成此任务。然而,这一次,我希望用户能够在iReport中编辑自己的报告,并上传它们。这应该是足够直接的。
这让我想到,Jasper让你有效地在报告中编写代码,这些代码在报告生成时执行。是否可以编写一个完全访问Java API的报告,从而访问我的web应用程序。我不希望用户能够杀死tomcat,或者更糟的是,使用我构建的DAO api来读取其他用户的数据。
有没有人知道这是否真的是可能的,如果是的话,你能以某种方式将其沙箱。也许我可以在报告XML编译前对其进行过滤?
另外,有没有人知道这是否也适用于BIRT等其他开源报告工具?
发布于 2013-06-01 00:01:23
看看我们在BI解决方案Reportserver2中使用的java-sandbox 1。我目前正在准备一篇博客文章,解释如何在沙箱环境中运行jasperreport。
至于Birt,同样的道理也适用于那里。在这里,用户不能直接编写java代码,但他们可以使用Rhino,这最终具有相同的效果。
1 2
发布于 2013-04-08 23:25:10
我正在发布一个web服务1,允许开发人员使用i-report上绘制的模板生成PDF。
所以我不得不解决同样的问题,我的第一次尝试是使用Java安全引擎API,但它太复杂了,需要很多权限。
因此,当我搜索Heroku如何隔离每个web应用程序时,我发现了Linux容器( lxc ) 2,所以我决定将每个“开发人员沙箱”隔离在一个lxc容器中。
它不会阻止用户关闭“沙箱服务器”,但如果他们这样做,他们将只关闭自己的沙箱,其他用户的沙箱不会受到影响。
1 2
https://stackoverflow.com/questions/10716281
复制相似问题