Sun GlassFish Enterprise Server 2.1 版本說明

安全性

本節說明與 Enterprise Server 和 Web 應用程式安全性及憑證有關的已知問題和相關解決方案。

負荷過大時,SSL 分析藍本出現記憶體不足的錯誤 (JDK 6 問題 23)

說明

在負荷過大的情況下執行某些 SSL 分析藍本時,JDK6 Sun PKCS11 提供者中的 JDK 錯誤 (請參閱:https://jdk6.dev.java.net/issues/show_bug.cgi?id=23) 可能會導致出現記憶體不足的錯誤。

解決方案

如果您遇到此問題,請從 JRE 安裝內的 java.security 檔案中移除 sun.security.pkcs11.SunPKCS11 提供者。

AIX:因為伺服器端認證驗證錯誤,WSS 動態加密金鑰測試失敗 (6627379)

說明

在 AIX 平台上,針對回應的加密金鑰判定所進行的動態加密會失敗。此失敗發生在伺服器端憑證的驗證期間。

以下錯誤訊息會寫入至伺服器記錄檔 server.log,以回應此失敗:


Unable to validate certificate

Error occurred while resolving key information
com.sun.xml.wss.impl.WssSoapFaultException: Certificate validation failed

解決方案

在 Enterprise Server 2.1 上安裝 Metro 1.1

AIX:在 EJB 模組授權測試中使用 @RunAs 失敗 AccessLocalException: 無法授權用戶端 (6627385)

說明

在企業 Bean (其執行身份或傳遞的安全性驗證身份是使用 @RunAs 附註所定義) 中的方法嘗試要呼叫另一個企業 Bean 中的方法。如果 sun-ejb-jar.xml 部署描述元檔案中沒有定義任何 run-as 主體,則嘗試可能會失敗,並會顯示 javax.ejb.AccessLocalException 異常。


javax.ejb.AccessLocalException: Client not authorized for this invocation.

解決方案

sun-ejb-jar.xml 部署描述元檔案中,將指定 run-as 角色的主體名稱定義在 principal-name 元素中。

SSL 終止未起作用 (6269102)

說明

SSL 終止無法正常工作;如果為 SSL 終止設定了負載平衡程式 (硬體),Enterprise Server 會在重新導向期間將協定從 https 變更為 http

解決方案

在硬體負載平衡器與 Enterprise Server 之間增加軟體負載平衡器。

SSL 出現通訊端連線錯誤 (6492477)

說明

由於 JVM 錯誤,在 HTTP 偵聽程式上將 security-enabled 設定為 true 時,某些 JDK 版本會出現錯誤問題。具體的說,重現此錯誤的步驟如下︰

  1. 在 HTTP 偵聽程式上,將 security-enabled 設定為 true


    <http-listener acceptor-threads="1" address="0.0.0.0" 
    blocking-enabled="false" default-virtual-server="server" enabled="true" 
    family="inet" id=" http-listener-1" port="8080" security-enabled="true" 
    server-name="" xpowered-by="true">
  2. 在 quicklook 測試結尾處加入停止網域的註釋。

  3. 執行 quicklook 測試。

  4. 檢查通訊埠的使用︰


    netstat -an | grep 8080

    下面顯示的是正在使用︰


    *.8080               *.*                0      0 49152      0 LISTEN
    *.8080               *.*                0      0 49152      0 BOUND

GlassFish 網站已經追蹤此問題,網址為:https://glassfish.dev.java.net/issues/show_bug.cgi?id=849

解決方案

升級到最新的 JDK 版本。