2012-05-23 2 views
3

사용자가 기본 PDF 보고서를 실행할 수 있도록 허용하려는 Java 웹 앱을 작성 중입니다. 일반적으로 Jasper Reports를 사용합니다. 그러나 이번에는 사용자가 iReport에 자신의 보고서를 편집하고 업로드 할 수 있기를 바랍니다. 바로 앞으로 나아갈 수 있어야합니다.Jasper 보고서 보안 샌드 박스

제 생각에 Jasper는 보고서가 생성 될 때 실행되는 보고서에 코드를 효과적으로 작성할 수있게했습니다. Java API 및 따라서 웹 응용 프로그램에 대한 전체 액세스 권한이있는 보고서를 작성할 수 있습니까? 나는 사용자가 바람둥이를 죽이거나 더 나쁜 사용자가 여전히 다른 사용자 데이터를 읽도록 구축 한 DAO API를 사용하지 못하도록하고 싶지 않습니다.

실제로 가능한지 알고 있습니다. 그렇다면 어떻게 든 샌드 박스를 만들 수 있습니다. 그 XML을 준수하기 전에 XML을 필터링 할 수 있습니까?

BIRT와 같은 다른 오픈 소스보고 도구에도 같은 내용이 적용되는지 알고있는 사람이 있습니까?

답변

1

http://en.wikipedia.org/wiki/LXC는 자바 샌드 박스에서보세요 [1] 우리는 우리의 BI 솔루션에서 ReportServer에서 사용하는 [2]. 현재 샌드 박스 환경에서 jasperreports를 실행하는 방법을 설명하는 블로그 게시물을 준비 중입니다.

Birt는 매우 똑같습니다. 여기에서는 사용자가 직접 자바 코드를 작성할 수는 없지만 결국 Rhino를 사용할 수 있습니다.이 Rhino는 결국 동일한 효과를냅니다.

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

2

내가

그래서 나는이 같은 문제를 해결했다 [1] 개발자가 I-보고서에 그려진 템플릿을 사용하여 PDF를 생성 할 수 있도록하는 웹 서비스를 공개하고있어, 내 첫 번째 시도는 Java Security를 ​​사용하는 것이 었습니다 Engine API를 사용했지만 필요한 권한이 너무 많아 복잡했습니다.

그래서 Heroku가 각 웹 응용 프로그램을 어떻게 분리하는지 검색하는 동안 Linux 컨테이너 (LXC) [2]를 발견 했으므로 ix 컨테이너에 각 "개발자 샌드 박스"를 격리하기로 결정했습니다.

사용자가 "샌드 박스 서버"를 종료하는 것을 방지하지는 않지만 사용자가 자신의 샌드 박스의 전원을 끄고 다른 사용자의 샌드 박스는 영향을받지 않습니다.

[1] http://reports.simpleservic.es/landing [2]

+1

http://reportserver.datenwerke.net되지는 DAO 액세스를 필요로하므로 이상적인 솔루션은 원격 및 고정 제조한다. 그러나 나는 다른 어떤 대안도 보지 않고있다. – Gary

+0

필자의 경우이 서비스는 SQL 데이터 소스 대신 XML을 데이터 소스로 지원하므로 데이터베이스 액세스가 필요하지 않습니다. –