【问题标题】:GWT with Spring Security Caching Issue on GWT PageGWT 页面上带有 Spring 安全缓存问题的 GWT
【发布时间】:2012-03-16 09:13:27
【问题描述】:

我觉得这很奇怪,我无法找到有类似问题的人的任何信息。无论如何,我已经将 Spring Security 与 GWT 集成在一起,并且它似乎可以正常工作……在大多数情况下。我在 IE 和 Chrome 中的主 html 页面存在缓存问题。

我已经将 Spring Security 登录分离到一个 login.jsp,该登录重定向到我的 Application.html 页面(GWT 页面),当我第一次启动应用程序并访问该页面时,它似乎工作正常浏览器。我被定向到登录页面,因为我没有通过身份验证。

问题在于,在 Chrome 或 IE 中,如果我在成功登录后关闭浏览器,然后直接浏览回该 Application.html URL,它仍然呈现为好像我已通过身份验证。我查看控制台,spring security 的日志语句验证我没有经过身份验证。在我点击 f5 刷新页面的那一刻,我被引导回 login.jsp 网址。

我相信这是一些缓存问题,因为当我关闭浏览器并重新打开 html 页面时,即使它呈现为我已登录,控制台日志语句也会显示我没有,如果我在调试模式下运行,Application.java 中的 OnModuleLoad() 永远不会被命中。

最后,这似乎在 Firefox 中可以正常工作...如果有人看到此问题或对我需要解决的问题有任何建议,我将非常感谢您的帮助。

【问题讨论】:

    标签: spring gwt spring-security


    【解决方案1】:

    我在开发一个网络应用时遇到了类似的问题。我试图通过将这些标签添加到页面来防止浏览器缓存页面:

    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="0">
    

    不幸的是,这还不足以阻止所有浏览器的缓存。我最终将页面转换为 JSP 页面并将这些语句添加到顶部:

    <%
    response.setHeader("Cache-Control", "no-cache");
    response.setHeader("Pragma", "no-cache");
    response.setDateHeader("Expires", 0);
    %>
    

    自从我进行更改后,我无法在 Firefox、Chrome 或 Safari 中重现该问题。我还没有使用 Internet Explorer 测试过该页面。

    【讨论】:

      猜你喜欢
      • 2011-10-21
      • 1970-01-01
      • 2012-12-04
      • 2013-11-18
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 2012-02-08
      相关资源
      最近更新 更多