我們在JSF 1.2(Sun's RI)中開發的Web應用程序部署在帶有JRockit 1.6 64位的Weblogic 11g中。我們有我們的視圖狀態保存模式作爲客戶端。該應用程序通過HTTPS訪問。JSF 1.2 Mojarra視圖狀態加密 - GZip錯誤 - java.io.IOException:不是GZIP格式
作爲第三方滲透測試建議的一部分,我們建議加密視圖狀態,該視圖狀態是使用web.xml中的JNDI ENV設置實現的。
<env-entry> <env-entry-name>com.sun.faces.ClientStateSavingPassword</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>2rEb7Tuf</env-entry-value> </env-entry>
當應用程序被部署到我們的生產箱(集羣與會話親緣關係),有時在處理客戶端請求(當然不是當應用程序頁面加載到客戶端瀏覽器在默認視圖狀態將被髮送作爲隱藏字段的一部分),我們得到GZIP錯誤「java.io.IOException:不在GZIP格式」。只有啓用加密時纔會發生這種情況。
Servlet failed with IOException java.io.IOException: Not in GZIP format at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:143) at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:58) at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:67) at com.sun.faces.renderkit.ResponseStateManagerImpl.getTreeStructureToRestore(ResponseStateManagerImpl.java:166) at javax.faces.render.ResponseStateManager.getState(ResponseStateManager.java:215) Truncated. see log file for complete stacktrace
任何有價值的見解將不勝感激。提前致謝。
感謝您的迴應BalusC。但是我們希望啓用GZIP /壓縮,同時我們也希望將客戶端保存在客戶端。有沒有辦法可以解決這個問題呢?提前致謝。 – user1716111