1

有没有人设法让 BIRT 在打开 Java 2 安全性的 WebSphere 下运行?我在 was.policy 文件中放了什么似乎并不重要,当我尝试生成报告时,我会遇到大量的安全异常。

在关闭 Java 2 安全性的情况下运行可以完美运行,但这不是生产环境的选项。

例如:当我的应用程序运行时,我在堆栈跟踪中看到以下内容

Permission:

  * : Access denied (java.util.PropertyPermission * read,write)

 org.eclipse.osgi.framework.internal.core.FrameworkProperties  in  {file:/hosting/configs/WebSphereD03/AppServer/installedApps/CD03-crxaiuci5002/DOCGEN.ear/docgen.war/WEB-INF/platform/plugins/org.eclipse.osgi_3.3.1.R33x_v20070828.jar}

堆栈跟踪:

java.security.AccessControlException:访问被拒绝(java.util.PropertyPermission * 读、写)

Birt 被打包到我的 EAR 文件中,所以为了摆脱这个特殊问题,我的 was.policy 文件中有以下条目

grant codeBase "file:${application}" {
permission java.util.PropertyPermission "*", "read,write";

};

这似乎没有任何区别,所以我尝试了

grant codeBase "file:/hosting/configs/WebSphereD03/AppServer/installedApps/CD03-crxaiuci5002/DOCGEN.ear/docgen.war/WEB-INF/platform/plugins/org.eclipse.osgi_3.3.1.R33x_v20070828.jar" {
permission java.util.PropertyPermission "*", "read,write";

};

还是没有运气...

任何人有任何指针?

谢谢

戴夫

4

3 回答 3

2

区分 WebSphere (Java EE) 安全性和 Java 2 安全性

应该为生产应用程序(以及 WebSphere 的管理员)启用 Java EE 安全性。

Java 2 Security 实际上买得很少,而且在 WebSphere 领域并没有得到广泛使用。如果应用程序内隔离非常重要,它可能很有用,但在这种情况下,您还没有通过启用 Java 2 安全性来解决问题。

启用 Java 2 安全性非常痛苦,因为您表示获得一组有用的权限是乏味的。一个有用的技巧:设置系统属性:

 com.ibm.websphere.java2secman.norethrow

这将导致在应用程序失败的情况下报告所有权限错误。因此,您知道要授予的全部权限。

于 2009-06-02T08:12:34.790 回答
0

您是否在 was.policy 中有以下行以使 BIRT 在启用了 java 2 安全性的 WAS 实例中运行,

权限 java.util.PropertyPermission "*", "read,write"; 权限 java.security.AllPermission;

谢谢您的帮助

于 2010-12-02T23:14:03.507 回答
0

如果有人再次遇到此问题并且由于任何原因无法禁用 Java 2 安全性,那么我遇到了完全相同的问题并发布在BIRT 交换论坛上。Jason Weathersby 找到了解决办法:

我怀疑这个问题与将 OSGi 写入 web-inf/platform/configuration 目录有关。你能为此记录一个错误吗?您可以尝试修改 web-inf/platform/configuration 中的 config.ini 添加如下条目:osgi.configuration.area=c:/birtconfigarea 并确保该目录可写。杰森

编辑:

事实证明,在测试此修复时,Java2 安全性没有正确地重新启用,因此上述不是修复。但是我相信我找到了一个可怕的解决方法:

将以下内容添加到 config.ini 文件中:

eclipse.security=null

在查看了 OSGILauncher 类 (org.eclipse.birt.core) 之后,有一个方法 setupSecurityPolicy()(第 700 行 v2.6.0)可以查找属性 eclipse.security。如果属性为空,它会继续设置一些 OSGIPolicy,这似乎是问题的原因。

注意:这会破坏 Tomcat 中的部署,即设置了属性 eclipse.security,BIRT 报告平台无法启动。

于 2010-10-01T10:24:29.727 回答