JSF 1.2 (Sun の RI) で開発された Web アプリケーションは、JRockit 1.6 64 ビットを使用して Weblogic 11g にデプロイされています。View State 保存モードを Client にしています。アプリケーションは HTTPS 経由でアクセスされます。
サード パーティの侵入テストからの推奨事項の一部として、web.xml の JNDI ENV 設定を使用して実装されるビュー ステートを暗号化することが推奨されました。
<環境エントリ> <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> </環境エントリ>
アプリケーションが実稼働ボックス (セッション アフィニティでクラスター化されている) にデプロイされるとき、クライアント リクエストを処理している間 (アプリケーション ページがクライアント ブラウザーに読み込まれるときではなく、デフォルトのビュー ステートが非表示フィールドの一部として送信されます)。 、GZIP エラー「java.io.IOException: Not in GZIP format」が発生します。これは、暗号化が有効になっている場合にのみ発生します。
サーブレットが IOException で失敗しました java.io.IOException: GZIP 形式ではありません 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) com.sun.faces.renderkit.ResponseStateManagerImpl.getTreeStructureToRestore(ResponseStateManagerImpl.java:166) で javax.faces.render.ResponseStateManager.getState(ResponseStateManager.java:215)で 切り捨てられました。完全なスタック トレースについては、ログ ファイルを参照してください
貴重な洞察をいただければ幸いです。前もって感謝します。