4

ユーザーが基本的なPDFレポートを実行できるようにするJavaWebアプリを作成しています。通常、これにはJasperReportsを使用します。ただし、今回は、ユーザーがiReportで独自のレポートを編集してアップロードできるようにしたいと思います。これは十分に簡単なはずです。

Jasperを使用すると、レポートの生成時に実行されるコードをレポートに効果的に記述できます。Java API、つまり私のWebアプリに完全にアクセスできるレポートを作成することは可能ですか。ユーザーがTomcatを強制終了したり、さらに悪いことに、他のユーザーのデータを読み取るために作成したDAOAPIを使用したりすることは望ましくありません。

これが実際に可能かどうかを誰かが知っていますか?もしそうなら、どういうわけかそれをサンドボックス化できますか?なんらかの方法でコンパイルする前に、レポートXMLをフィルタリングできるでしょうか。

また、同じことがBIRTなどの他のオープンソースレポートツールにも当てはまるかどうか誰かが知っていますか?

4

2 に答える 2

2

開発者がi-reportに描画されたテンプレートを使用してPDFを生成できるようにするWebサービス[1]をリリースします。

そのため、同じ問題を解決する必要がありました。最初の試みはJava Security Engine APIを使用することでしたが、複雑すぎて必要な権限がたくさんありました。

そこで、Herokuが各Webアプリを分離する方法を検索しているときに、Linux Containers(LXC)[2]を発見したので、lxcコンテナー内の各「開発者サンドボックス」を分離することにしました。

ユーザーが「サンドボックスサーバー」をシャットダウンすることを妨げることはありませんが、シャットダウンした場合、ユーザーは自分のサンドボックスのみの電源をオフにし、他のユーザーのサンドボックスは影響を受けません。

[1] http://reports.simpleservic.es/landing [2] http://en.wikipedia.org/wiki/LXC

于 2013-04-08T15:25:09.843 に答える
1

BIソリューションのReportserver[2]で使用しているjava-sandbox[1]をご覧ください。私は現在、サンドボックス環境でjasperreportsを実行する方法を説明するブログ投稿を準備しています。

Birtに関しても、まったく同じことが当てはまります。ここでは、ユーザーはJavaコードを直接記述できませんが、最終的に同じ効果を持つRhinoを使用できます。

[1] http://blog.datenwerke.net/p/the-java-sandbox.html [2] http://reportserver.datenwerke.net

于 2013-05-31T16:01:23.147 に答える