2009-06-01 53 views
1

是否有人設法使BIRT在WebSphere 2下運行,並啓用了Java 2 Security?似乎並不重要的是我在我的was.policy文件中放置了什麼,當我嘗試生成報告時,我得到一個安全性異常數量很大的巨大的BIRT/WebSphere/Java 2安全

運行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"; 

};

仍然沒有運氣...

任何人有任何指針?

感謝

戴夫

回答

2

區分的WebSphere(的Java EE)安全性和Java 2安全性之間

Java EE的安全性,應爲生產應用使能(和WebSphere的管理也是如此)。

Java 2安全性實際上很少購買,並不是在WebSphere land中廣泛使用的。如果應用程序內部隔離非常重要,但在這種情況下,您還沒有通過啓用Java 2安全性來解決問題,這可能很有用。

因爲您指出獲得一組有用的權限是乏味的,所以啓用Java 2安全性非常痛苦。一個有用的技巧:設置系統屬性:

com.ibm.websphere.java2secman.norethrow 

這將導致所有permisions錯誤,沒有應用程式失敗報告。因此,您知道授予的全套權限。

+0

我得到的問題是,即使我設置norethrow,並得到錯誤的列表,添加相關權限到我的was.policy文件似乎並沒有使錯誤走遠。 我會嘗試編輯我的inital帖子以提供示例 – DaveH 2009-06-02 09:44:58

0

如果有人再次遇到此問題,並且出於任何原因無法禁用Java 2安全性,則我遇到了完全相同的問題,並在BIRT exchange forums上發佈。 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()(line 700 v2.6.0),它查找屬性eclipse.security。如果該屬性爲空,則繼續並設置一些OSGIPolicy,這似乎是導致問題的原因。

注意:這會中斷Tomcat中的部署,即使用eclipse.security屬性設置,BIRT報告平臺無法啓動。

-1

難道你在的was.policy以下行已BIRT在Java中運行啓用了2安全WAS實例,

許可java.util.PropertyPermission 「*」, 「讀,寫」; 權限java.security.AllPermission;

感謝您的幫助