java - 如何防止用户在 Play 框架中注销后返回到之前的安全页面?

标签 java html playframework playframework-2.0 playframework-2.1

我正在使用 java 的 play 框架开发一个简单的 Web 应用程序,我正在做

  1. 登录
  2. 退出
  3. 用户信息页面

我开发了该网络应用程序,但我遇到了问题

问题:

点击我的网络应用程序的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>

但它会返回并显示用户信息。

实际上,当用户单击后退按钮时,我的网络应用程序正在存储缓存,它正在调用缓存副本,这就是为什么我调用了 noCache 方法,但仍然无法正常工作

给我一​​些解决这个问题的想法吗?

最佳答案

Jsp页面添加代码

<%
    response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
    response.setHeader("Pragma","no-cache"); //HTTP 1.0
    response.setHeader("Cache-Control","no-store");
    response.setDateHeader ("Expires", 0);
%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"  pageEncoding="ISO-        8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"      "http://www.w3.org/TR/html4/loose.dtd">

关于java - 如何防止用户在 Play 框架中注销后返回到之前的安全页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19175682/

相关文章:

java - 正确地将 Jest 添加到 Java Play 2.5.x

Java - 数组没有打印我想要的值

java - 在 Maven 项目中查找 JUnit 5 测试

java - Eclipse WindowBuilder 设计选项卡为空?

javascript - 浏览器登录自动完成

javascript - 悬停时交换背景

java - 如何读出带冒号的列(:) in its name in hibernate and postgresql

javascript - 如何使圆的一半边框透明

javascript - 在 css 中打开模态窗口时运行 javascript 函数

javascript - 具有Play框架的React.js-服务器端渲染