GWT上的Spring安全缓存问题GWT

时间:2011-09-13 00:59:21

标签: spring gwt spring-security

我发现这种奇怪的事情我无法找到有类似问题的人的任何信息。无论如何,我已经将Spring Security与GWT集成在一起,它似乎在大多数情况下都能正常工作。我在IE和Chrome中的主要html页面遇到了缓存问题。

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

问题是,在Chrome或IE浏览器中,如果我在成功登录后关闭浏览器,并直接浏览回该Application.html网址,它仍会呈现,就好像我已经过身份验证一样。我查看我的控制台,弹簧安全的日志语句验证我没有经过身份验证。当我点击f5刷新页面的那一刻,我被定向回login.jsp网址。

我认为这是一些缓存问题,因为当我关闭浏览器并重新打开html页面时,即使它像我登录一样渲染,控制台日志声明说我不是,如果我在调试模式下运行,Application.java中的OnModuleLoad()永远不会被命中。

最后,这似乎在firefox中正常工作......如果有人看过这个问题或者有任何我需要修复的建议,我将非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我遇到过与我一直在处理的网络应用程序类似的问题。我试图通过向页面添加这些标记来阻止浏览器缓存页面:

<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测试该页面。