【发布时间】:2013-10-04 07:30:06
【问题描述】:
我正在使用带有 java 的 play 框架开发一个简单的 Web 应用程序,我正在做
- 登录
- 退出
- 用户信息页面
我开发了那个网络应用程序,但我遇到了问题
问题:
点击我的网络应用程序的logout 链接后,我将重定向到login 页面,但如果用户点击浏览器的后退按钮,那么它会返回到安全页面,我不这样做'不想。
也使用了session,但在注销时我正在调用controller:
public static void noCache(final Response response) {
response.setHeader("Cache-Control",
"no-cache, no-store, must-revalidate, max-age=0, post-check=0, pre-check=0"); // HTTP 1.1
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setHeader("EXPIRES", "0"); // Proxies
}
public static Result logou() {
session().clear();
flash("success", Messages.get("youve.been.logged.out"));
noCache(response());
return redirect(routes.signin.page());
}
退出链接:
<a href="@routes.signin.logou">Logout</a>
但它会返回并显示用户信息。
实际上,当用户单击后退按钮时,我的 Web 应用程序正在存储缓存,它正在调用缓存副本,这就是我调用 noCache 方法但仍然无法正常工作的原因
给我一些想法来解决这个问题?
【问题讨论】:
-
要回答这个问题,我需要澄清几点: 1) 可以肯定的是,您是说您的应用程序正在提供页面的缓存副本? 2)
noCache操作是为包含敏感用户信息的页面提供服务的操作? 3) 你的登录机制是如何工作的? (即在 step 1. login 中,您会被重定向到调用noCache控制器方法的 url?)。如果不是,则问题可能是您正在使用未设置无缓存标头的登录操作呈现用户信息页面。如果没有更多信息,很难诊断出这个 imo。 -
@Rahul kulhari,您找到解决方案了吗?我也面临同样的问题。
标签: java html playframework playframework-2.0 playframework-2.1