【问题标题】:JSF 1.2 Mojarra View State encryption - GZip Error - java.io.IOException: Not in GZIP formatJSF 1.2 Mojarra 视图状态加密 - GZip 错误 - java.io.IOException:不是 GZIP 格式
【发布时间】:2012-09-24 01:17:23
【问题描述】:

我们在 JSF 1.2(Sun 的 RI)中开发的 Web 应用程序部署在带有 JRockit 1.6 64 位的 Weblogic 11g 中。我们有我们的视图状态保存模式作为客户端。该应用程序通过 HTTPS 访问。

作为第 3 方渗透测试建议的一部分,我们建议对视图状态进行加密,这是使用 web.xml 中的 JNDI ENV 设置实现的。

com.sun.faces.ClientStateSavingPasswordjava.lang.String2rEb7Tuf

当应用程序被部署到我们的生产环境中(使用会话亲和性集群)时,有时在处理客户端请求时(当然不是当应用程序页面加载到客户端浏览器中时,默认视图状态将作为隐藏字段),我们得到 GZIP 错误“java.io.IOException: Not in GZIP format”。仅当启用加密时才会发生这种情况。

Servlet 因 IOException 而失败 java.io.IOException:不是 GZIP 格式 在 java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:143) 在 java.util.zip.GZIPInputStream.(GZIPInputStream.java:58) 在 java.util.zip.GZIPInputStream.(GZIPInputStream.java:67) 在 com.sun.faces.renderkit.ResponseStateManagerImpl.getTreeStructureToRestore(ResponseStateManagerImpl.java:166) 在 javax.faces.render.ResponseStateManager.getState(ResponseStateManager.java:215) 截断。查看日志文件以获取完整的堆栈跟踪

任何有价值的见解都将受到高度赞赏。提前致谢。

【问题讨论】:

    标签: xml jsf jsf-1.2


    【解决方案1】:

    当我们在客户端设置视图状态时,默认com.sun.faces.compressViewStatetrue,因此JSF框架会尝试使用GZIP格式对其进行压缩。如果将web.xml 中的com.sun.faces.compressViewState init 参数设置为false,则不会发生压缩,您可以避免此异常。试一试。

    【讨论】:

    • 感谢 BalusC 的回复。但是我们希望启用 GZIP/压缩,并且我们希望在客户端保存状态。有没有办法可以绕过这个问题。提前致谢。
    猜你喜欢
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 2017-01-31
    • 2016-03-08
    • 1970-01-01
    相关资源
    最近更新 更多